您的位置:首页 > 编程语言 > Java开发

Java用wait和notify实现线程协作

2015-11-20 16:25 651 查看
编写一个应用程序,除了主线程外,还有两个子线程。两个子线程对同一个数据操作,其中一个线程负责对该数据做递增操作,一个线程负责对该线程做递减操作。当这个数据小于0的话,递减操作等待,当这个数据大于100的话,递增操作等待。

import java.lang.*;
public class Demo{
private int a = 0;

public synchronized void add(){
++a;

if(a > 100){
try{
this.wait();

}catch(Exception e){
e.printStackTrace();
}
}else{
System.out.println(Thread.currentThread().getName()+":"+a);
}
this.notify();
}

public synchronized void delete(){
--a;
if(a < 0){
try{
this.wait();

}catch(Exception e){
e.printStackTrace();
}
}else{
System.out.println(Thread.currentThread().getName()+":"+a);
}
this.notify();
}
public static void main(String[] args) {
Demo dm = new Demo();
new Thread(){
public void run(){
while(true){
dm.add();
}
}
}.start();

new Thread(){
public void run(){
while(true){
dm.delete();
}
}
}.start();
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 线程