/*
线程间通信:
多个线程在处理同一资源,但是任务不同
*/
class Resource{
String name;
String sex;
}
class Input implements Runnable{
Resource r;
Input (Resource r){
this.r=r;
}
public void run(){
int x=0;
while(true){
synchronized(r){//用同一个锁 r(资源)
if(x==0){
r.name="mike";
r.sex="nan";
}
else{
r.name="莉莉";
r.sex="女女女女";
}
x=(x+1)%2;
}
}
}
}
class Output implements Runnable{
Resource r;
Output(Resource r){
this.r=r;
}
public void run(){
while(true){
synchronized(r){
System.out.println(r.name+"------"+r.sex);
}
}
}
}
class ResourceDemo{
public static void main(String[] args) {
//创建资源
Resource r=new Resource();
//创建任务
Input in =new Input(r);
Output out =new Output(r);
//创建线程,执行路径
Thread t1=new Thread(in);
Thread t2=new Thread(out);
t1.start();
t2.start();
}
}
Java 多线程的通信
最新推荐文章于 2024-01-01 08:03:25 发布