23-多线程(线程间通信-示例)

来源:互联网 发布:大数据和大数据开发 编辑:程序博客网 时间:2024/06/07 18:37
package Thread6;/*线程间通讯:多个线程在处理同一资源,但是任务却不同。*///资源class Resource{String name;String sex;}//输入class Input implements Runnable{Resource r ;//Object obj = new Object();Input(Resource r){this.r = r;}public void run(){int x = 0;while(true){synchronized(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;//Object obj = new Object();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();}}


输出结果:

mike....nan

mike...nan

丽丽.....女女女女女女
丽丽.....女女女女女女


原创粉丝点击