平静

遵循美德行事,纵使没有增加快乐,也可减轻焦虑。

导航

随笔分类 -  04-并发

摘要:我们常用wait(),notify()和notifyAll()方法来进行线程间通信。线程检查一个条件后就行进入等待状态,例如,在“生产者-消费者”模型中,生产者线程发现缓冲区满了就等待,消费者线程通过消费一个产品使得缓冲区有空闲并通知生产者线程。notify()或notifyAll()的调用给一个或 阅读全文

posted @ 2016-11-18 18:08 mdong 阅读(1419) 评论(0) 推荐(0)

摘要:首先,join是一个同步方法 关键代码: while (isAlive()) { wait(0); //如果 timeout 为零,则不考虑实际时间,在获得通知前该线程将一直等待。 } isAlive是 join方法的本意和目标。即使中间被唤醒(虚拟唤醒),他仍然会再次调用wait(0)来等待下一次 阅读全文

posted @ 2016-11-18 10:31 mdong 阅读(6270) 评论(0) 推荐(1)

摘要:java线程同步的原理java会为每个Object对象分配一个monitor, 当某个对象(实例)的同步方法(synchronized methods)被多个线程调用时,该对象的monitor将负责处理这些访问的并发独占要求。任何时刻,对一个指定object对象(实例)的某同步方法只能由一个线程来调 阅读全文

posted @ 2016-11-11 14:06 mdong 阅读(671) 评论(0) 推荐(0)

摘要:用于多线程计算数据,最后合并计算结果的应用场景 CyclicBarrier 的字面意思是可循环使用(Cyclic)的屏障(Barrier) 它要做的事情是,让一组线程到达一个屏障(也可以叫同步点)时被阻塞,直到最后一个线程到达屏障时,屏障才会开门,所有被屏障拦截的线程才会继续干活。 CyclicBa 阅读全文

posted @ 2016-10-27 14:07 mdong 阅读(182) 评论(0) 推荐(0)

该文被密码保护。

posted @ 2016-10-26 14:04 mdong 阅读(1) 评论(0) 推荐(0)

摘要:volatile修饰的变量,特性:保证可见性。 不能保证多个不在的操作之间的原子性。 类似 if(containsKey()) put 两步骤中间存在覆盖的可能。 阅读全文

posted @ 2016-10-26 13:51 mdong 阅读(91) 评论(0) 推荐(0)