java线程通信
来源:互联网 发布:opera linux 安装 编辑:程序博客网 时间:2024/06/13 06:02
在Java多线程的应用中有时需要线程之间需要一些协调通信,来共同完成一件任务。
线程通信主要有wait() 与 notify() 和 notifyAll()方法实现。
notify():唤醒正在排队等待同步资源的线程中优先级最高者结束等待
notifyAll ():唤醒正在排队等待资源的所有线程结束等待
在当前线程中调用方法: 对象名.wait()
使当前线程进入等待(某对象)状态 ,直到另一线程对该对象发出 notify (或notifyAll) 为止。
调用方法的必要条件:当前线程必须具有对该对象的监控权(加锁)
调用此方法后,当前线程将释放对象监控权 ,然后进入等待
在当前线程被notify后,要重新获得监控权,然后从断点处继续代码的执行。
在当前线程中调用方法: 对象名.notify()
功能:唤醒等待该对象监控权的一个线程。
调用方法的必要条件:当前线程必须具有对该对象的监控权(加锁)
class Communication implements Runnable{int i = 1;public void run() {while (true) {synchronized (this) {notify();if (i <= 100) {System.out.println(Thread.currentThread().getName() + ":"+ i++);}else break;try {wait();} catch (InterruptedException e) {}}}}}
0 0
- JAVA线程-线程间通信
- java线程通信
- java 线程间通信
- Java.线程通信
- java线程通信
- java线程通信复习
- Java 线程通信
- Java线程通信机制
- java线程间通信
- Java线程通信 (一)
- java 线程通信
- Java线程通信
- Java线程间通信
- java 线程通信
- Java复习--线程通信
- java线程间通信
- Java中线程通信
- java中的线程通信
- iOS UIScrollView的使用及其不能滑动问题解决
- iOS真机调试
- MyBatis学习总结[3]-多表查询
- JAVA面试宝典7
- AngularJS之$window窗口对象
- java线程通信
- 程序员之路——一个老程序员对刚上大学的学弟学妹的忠告
- k8s源码分析-----kubelet启动流程分析(续)
- 论文笔记 A MultiPath Network for Object Detection
- android如何查看cpu的占用率和内存泄漏
- 二叉树的遍历之——Morris遍历
- More is better
- 微信公众号开发---基本原理及注册
- 浅谈集合转换成数组的方法--toArray()与toArray(T[] a)