多线程——简述线程间的通信

来源:互联网 发布:数据集成方案ppt 编辑:程序博客网 时间:2024/05/21 19:35
package com.work.wor01;/**线程间的通信 * 当多个线程对于同一个资源进行处理时,且处理方式相同,那么多个线程之间不需要通信。 *  * 线程间的通信发生在多个线程在处理同一个资源,但是处理的动作(任务)却不相同。 *  * *///资源类class Resource{String name;String sex;}//描述输入任务的类class input implements Runnable{Resource r;//任务一旦初始化就将资源传进来,任务一产生必须有资源public input(Resource r) {super();this.r = r;}@Overridepublic void run() {int x = 0;while(true){synchronized (r) {if(x==0){r.name = "小红";r.sex = "女";}else{r.name = "小军";r.sex = "男";}x=(x+1)%2;//判断x是否等于0}}}}//描述输出任务的类class output implements Runnable{Resource s;public output(Resource s) {super();this.s = s;}@Overridepublic void run() {while(true){synchronized (s) {System.out.println(s.name+"....."+s.sex);}}}}public class Resourcework01 {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();}}

0 0
原创粉丝点击