并发编程
文章平均质量分 91
yzl_8877
这个作者很懒,什么都没留下…
展开
-
sleep, yield, wait的区别
1.sleep(long millis) Thread的静态方法,使当前线程(即调用Thread.sleep(long millis)的线程)暂停执行一段时间(暂时让出CPU),让其他线程(任何优先级)有机会继续执行,但它并不释放对象锁。当睡眠到指定的时间后,时间事件触发,当前线程继续执行。源代码如下: 方法需要抛出InterruptedException异常。 如果sleep方法包原创 2016-12-12 17:41:36 · 358 阅读 · 0 评论 -
java中的锁
Java中的锁 在Java5.0之前采用的锁机制是用synchronized。Java5.0增加了新的机制:ReentrantLock。与synchronized内置加锁不同,ReentrantLock是一种显示锁。 一、内置锁synchronized Synchronized的作用主要有三个:(1)确保线程互斥的访问同步代码(2)保证共享变量的修改能够及时可见(3)有效解决重排转载 2016-12-13 10:59:44 · 378 阅读 · 0 评论 -
ConcurrentHashMap的原理
大家都知道HashMap是非线程安全的,Hashtable是线程安全的,但是由于Hashtable是采用synchronized进行同步,相当于所有线程进行读写时都去竞争一把锁,导致效率非常低下。 同步Map:效率同样低下,对HashMap的每个操作都进行了同步处理 Map map = Collections.synchronizedMap(new HashMap()); 这样会转载 2016-12-14 19:14:11 · 257 阅读 · 0 评论