java的线程唤醒与等待:
package test;
class Info{
private String name;
private String content;
private boolean flag=true;
public synchronized void set(String name,String content) {
if(flag==false){
try {
super.wait();//等待
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
this.content = content;
this.name=name;
flag=false;
super.notify();
}
public synchronized void get() {
if(flag==true){
try {
super.wait();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
System.out.println(this.content+"-"+this.name);
flag=true;
super.notify();
}
}
class Productor implements Runnable{
private Info info;
public Productor(Info info){
this.info=info;
}
public void run(){
for(int i=0;i<200;i++){
if(i%2==0)
info.set("王时雨", "正在刷题de");
else{
info.set("韩少华", "正在写程序de");
}
}
}
}
class Customer implements Runnable{
private Info info;
public Customer(Info info){
this.info=info;
}
public void run(){
for(int i=0;i<200;i++){
info.get();
}
}
}
public class Nimeng {
public static void main(String[] args) {
// TODO Auto-generated method stub
Info info=new Info();
new Thread(new Productor(info)).start();
new Thread(new Customer(info)).start();
}
}
运行结果如下:
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华
正在刷题de-王时雨
正在写程序de-韩少华