阅读背景:

多线程(线程间通信问题)

来源:互联网 

代码1线程不安全:

/**
 * 线程间通讯
 * 其实就是多线程在操作同一个资源
 * 但是操作的动作不同
 * */
class Res
{
	String name;
	String sex;
}
class Input implements Runnable
{
	private Res res;
	Input(Res res)
	{
		this.res =res;
	}
	@Override
	public void run() {
		int x=0;
		while (true) {
			if(x==0)
			{
				res.name = "mike";
				res.sex = "man";
			}
			else
			{
				res.name = "丽丽";
				res.sex = "女女女女女";
			}
			x = (x+1)%2;
		}
	}
}
class Output implements Runnable
{
	private Res res;
	Output(Res res)
	{
		this.res =res;
	}
	@Override
	public void run() {
		while (true) {
			System.out.println(res.name+"......"+res.sex);
		}
	}
}

class Test
{
	public static void main(String[] args) {
		Res res = new Res();
		
		Input i = new Input(res);
		Output o = new Output(res);
		
		Thread t1 = new Thread(i);
		Thread t2 = new Thread(o);
		
		t1.start();
		t2.start();
	}
}

/**
 * 线程间通讯
 * 其实就是多线程在操作同一个资源
 * 但是操作




你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: