JAVA 综合
wangxiao39
这个作者很懒,什么都没留下…
展开
-
对象值域 equals 比较 写法
field == null ? o.field == null : field.equals(o.field); 如果field与o.field通常是相同的对象引用,那么更高的效率写法: field == o.field || (field != null && field.equals(o.field)) 1.短路提高效率。 2.直接判断对象引用 == 提高效率 ...原创 2011-04-15 13:13:39 · 137 阅读 · 0 评论 -
java 开启jmx
-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8765 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false原创 2011-10-26 11:10:38 · 228 阅读 · 0 评论 -
java 之多线程 LOCK实现(一)
一,前言 众所周知,一个可靠的多线程程序必须要能够坐到无死锁,无饥饿。 什么叫做无饥饿:如果一个线程需要获得一个Lock,那么这个操作在一个有限时间内最终会获得成功(不论时间长短)。 那么我们现在就来实现只有两个线程的Lock。 二,Lock接口 public interface Lock{ public void lock(); public vo...原创 2012-09-04 10:31:16 · 110 阅读 · 0 评论 -
java 之多线程 LOCK实现(二)
接上一节,回顾一下,锁的实现有一个缺陷:两个线程交替执行会死锁。现在我们来做另外一个双线程锁实现来解决这个缺陷: public class ThreadLockImpl2 { private volatile int flag = 0; public void lock() { int threadId = ThreadUtil.getCurre...2012-09-05 10:01:11 · 104 阅读 · 0 评论 -
java 之多线程 LOCK实现(四)
接lock实现(三),由于peterson lock实现只能解决双线程同步互斥,那么N线程互斥 如何做呢?看下文。。。 设计一个Level(N)的N个过滤空间,每个线程到达临界区需要走过所有的Level空间。所有的level 都必须满足以下两个条件: 1)至少有一个尝试进入Level(N)的线程会成功。 2)如果有多个线程尝试进入一个Leven(N),则至少有一个会被阻塞(...2012-09-06 12:14:10 · 129 阅读 · 0 评论