📄 sharedtest.java
字号:
class Consumer extends Thread{
private ShareArea sharedObject;
public Consumer(ShareArea shared){
sharedObject=shared;
}
public void run(){
int value;
do{
try{
Thread.sleep((int)(Math.random()*3000));
}catch(InterruptedException e){}
value=sharedObject.getSharedInt();
System.out.println("consumer:"+value);
}while(value!=10);
}
}
class Producer extends Thread{
private ShareArea sharedObject;
public Producer(ShareArea shared){
sharedObject=shared;
}
public void run(){
for(int count=1;count<=10;count++){
try{
Thread.sleep((int)(Math.random()*3000));
}catch(InterruptedException e){}
sharedObject.setSharedInt(count);
System.out.println("producer:"+count);
}
}
}
class ShareArea{
private int sharedInt=-1;
private boolean writeable=true;
public synchronized void setSharedInt(int value){
while(!writeable){
try{
wait();
}catch(InterruptedException e){}
}
sharedInt=value;
writeable=false;
notify();
}
public synchronized int getSharedInt(){
while(writeable){
try{
wait();
}catch(InterruptedException e){}
}
writeable=true;
notify();
return sharedInt;
}
}
public class SharedTest{
public static void main(String args[]){
ShareArea sharedObject=new ShareArea();
Producer p=new Producer(sharedObject);
Consumer c=new Consumer(sharedObject);
p.start();
c.start();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -