package com.lsw.thread;
public class SocetDemo {
public static void main(String[] args) {
//创建资源对象
Resource5 r = new Resource5();
//创建任务对象
Input5 in = new Input5(r);
Output5 out = new Output5(r);
//创建线程对象
Thread t1 = new Thread(in);
Thread t2 = new Thread(out);
//开启线程
t1.start();
t2.start();
}
}
class Resource5{
String name;
String sex;
}
class Input5 implements Runnable{
private Resource5 r;
Input5(Resource5 r){
this.r = r;
}
public void run(){
int x = 0;
while(true){
if(x == 0){
r.name = "Tom";
r.sex = "man";
} else {
r.name = "小红";
r.sex = "女";
}
x = (x + 1)%2;
}
}
}
class Output5 implements Runnable{
private Resource5 r;
Output5(Resource5 r){
this.r = r;
}
public void run(){
while(true){
System.out.println(r.name + "," + r.sex);
}
}
}
打印结果:为何会出现Tom,女 和 小红,man的情况呢? 每个线程都执行的是自己独立的任务啊