利用wait notify 实现线程互斥通知
来源:互联网 发布:性喜剧 知乎 编辑:程序博客网 时间:2024/06/16 09:57
public class TestWaitNotifyMutex {
boolean isF1 = true;
public static void main(String[] args) {
final TestWaitNotifyMutex twnm = new TestWaitNotifyMutex();
new Thread(){
public void run() {
twnm.f1();
};
}.start();
new Thread(){
public void run() {
twnm.f2();
};
}.start();
}
private synchronized void f1(){
try {
while(isF1){
System.out.println("111111");
isF1 = false;
notifyAll();
wait();
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
private synchronized void f2(){
try {
while(!isF1){
System.out.println("222222");
isF1 = true;
notifyAll();
wait();
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
boolean isF1 = true;
public static void main(String[] args) {
final TestWaitNotifyMutex twnm = new TestWaitNotifyMutex();
new Thread(){
public void run() {
twnm.f1();
};
}.start();
new Thread(){
public void run() {
twnm.f2();
};
}.start();
}
private synchronized void f1(){
try {
while(isF1){
System.out.println("111111");
isF1 = false;
notifyAll();
wait();
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
private synchronized void f2(){
try {
while(!isF1){
System.out.println("222222");
isF1 = true;
notifyAll();
wait();
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
0 0
- 利用wait notify 实现线程互斥通知
- Java 线程同步互斥 wait、notify、notifyall
- 利用Object的wait、notify来实现线程同步原理
- java并发包中的Condition和Lock 取代Synchronized、wait、notify/notifyAll实现线程的同步与互斥
- java synchronized/wait/notify/互斥/同步
- 线程的wait()notify()的利用
- thread的wait\notify实现线程通信
- thread的wait\notify实现线程通信
- wait/notify/notifyAll实现线程间通信
- 使用wait/notify实现线程间通信
- wait 和 notify 实现线程间通信
- wait,notify实现两个线程交替打印
- Java线程等待wait通知notify方法的使用
- No5.线程的等待(wait)和通知(notify)
- Java多线程通信-利用传统的线程通信wait(),notify()方法实现“生产者消费者模式”
- 利用互斥对象实现线程同步
- 利用互斥对象实现线程同步
- 利用互斥对象实现线程同步
- Python开发——字符串format
- 在使用vector的push_back函数时,Release版下运行会出错的一个原因
- unix环境高级编程 FILE I/O笔记
- Observer(观察者)模式的代码演示
- FZOJ 2166 inversion 逆序数对 模拟
- 利用wait notify 实现线程互斥通知
- 《Java解惑》系列——01表达式之谜——谜题04:初级问题
- C++第8周(春)项目4 扩充String类
- 网络地址169开头的简单修复
- iOS内存管理
- 用中断方式在嵌入式操作系统μC/OS-Ⅱ上实现多任务通信
- Eclipse+PyDev+Django+Mysql搭建Python web开发环境
- winxp+ubuntu双系统下怎么删除linux系统
- 面向对象设计——系统动态模型设计(1,交互模型)