I.线程与线程间通信
一、多线程间通信方式:
1、共享变量
2、wait/notify机制
3、Lock/Condition机制
二、共享变量
线程间发送信号的一个简单方式是在共享对象的变量里设置信号值。线程A在一个同步块里设置boolean型成员变量hasDataToProcess为true,线程B也在同步块里读取hasDataToProcess这个成员变量。这个简单的例子使用了...
分类:
编程语言 时间:
2016-07-11 12:35:13
阅读次数:
249
/*线程的5种运行状态1.首先,线程被创建2.start()运行3.临时状态(阻塞状态)具备运行资格,但没有执行权4.冻结 sleep(time) sleep 时间到(睡眠状态) wait() notify()唤醒(等待状态) 结束之后,可能进入临时状态5.消亡 stop() */ ...
分类:
编程语言 时间:
2016-07-10 18:19:40
阅读次数:
151
转载自: sleep(),yield(),wait()区别详解:http://dylanxu.iteye.com/blog/1322066 join方法详解:http://www.open-open.com/lib/view/open1371741636171.html 区别说明: sleep(mi ...
分类:
编程语言 时间:
2016-07-07 00:45:12
阅读次数:
215
wait/notify()关键字适用于一个线程通知另一个线程所需的条件状态已就绪,最常用于线程在循环中休眠直到获取特定条件的场景. 例如,一个线程一直等待直到队列中有一个组件能够处理;当组件添加到队列时,另一个线程能够唤醒这个等待的线程。 如下代码演示线程间的协作: 执行结果如下所示: 说一下syn ...
分类:
编程语言 时间:
2016-06-30 19:35:53
阅读次数:
137
在Object.java中,定义了wait(), notify()和notifyAll()等接口。 notify() -- 唤醒在此对象监视器上等待的单个线程。notifyAll() -- 唤醒在此对象监视器上等待的所有线程。wait() -- 让当前线程处于“等待(阻塞)状态”,“直到其他线程调用 ...
分类:
其他好文 时间:
2016-06-27 06:50:49
阅读次数:
130
代码示例: 输出如下: 调用wait() notify() notifyAll()方法时需要注意的细节: 1)使用wait() notify() notifyAll() 时需要先对调用对象加锁; 2)调用wait()方法后,线程状态由RUNNING 变为WAITING,并将当前线程放置到对象的等待队 ...
分类:
编程语言 时间:
2016-06-18 15:29:10
阅读次数:
151
来自百度文库 java中的wait()和notify()使用实例 本例子实现了两个线程,每个线程输出1到100的数字。 第一个线程输出1-10,停止,通知第二个线程 输出1-10 第二个线程停止 通知第一个线程 输出11-20 ... 实现的要点是在Java中,每个对象都有个对象锁标志(Object ...
分类:
其他好文 时间:
2016-06-15 22:10:53
阅读次数:
237
问题的描述 启动3个线程打印递增的数字, 线程1先打印1,2,3,4,5, 然后是线程2打印6,7,8,9,10, 然后是线程3打印11,12,13,14,15. 接着再由线程1打印16,17,18,19,20....以此类推, 直到打印到45. wait+notify实现: Lock+condit ...
分类:
其他好文 时间:
2016-06-13 18:53:47
阅读次数:
168
Condition将Object监视器方法(wait、notify 和 notifyAll)分解成截然不同的对象,以便通过将这些对象与任意Lock实现组合使用,为每个对象提供多个等待 set(wait-set)。其中,Lock 替代了synchronized方法和语句的使用,Condition替代了Object监视器方法的使用。
1. Condition的基本使用
由于Condition可...
分类:
编程语言 时间:
2016-06-06 01:21:13
阅读次数:
200
如果你想避免使用错综复杂的wait–notify的语句,BlockingQueue非常有用。BlockingQueue可用于解决生产者-消费者问题,如下代码示例。对于每个开发人员来说,生产者消费者问题已经非常熟悉了,这里我将不做详细描述。 为什么BlockingQueue适合解决生产者消费者问题 任 ...
分类:
其他好文 时间:
2016-06-02 16:22:42
阅读次数:
265