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