java 线程同步 synchronized() wait() notify()

</pre><pre name="code" class="java">// java 线程同步
// zhangsan 和 lisi 同用一个厕所,张三先刷牙,张三等待,李四刷牙,李四等待,张三小便,张三等待,李四小便。<pre name="code" class="java">package TestPacage;
public class SynchronizationTest {
	public static void main(String [] args){
		
		MyRoomThread.zhangsan.start();
		MyRoomThread.lisi.start();
		//MyRoomThread.lisi
}

}
class MyRoomThread extends Thread{
	static MyRoomThread zhangsan= new MyRoomThread("zhangsan");
	static MyRoomThread lisi=new MyRoomThread("lisi");
	private String name;
	
	static Object toliet=new Object();
	
	

	MyRoomThread(String name){
		this.name=name;
	}
	@Override
	public void run() {
		// TODO Auto-generated method stub
		//super.run();
		try{
			synchronized(toliet){
				
				if(this.name.equals("zhangsan")){
					this.brush();
					toliet.wait();						
					this.pee();
					toliet.notify();	
											
				}
				else{
					this.brush();
					toliet.notify();	
					toliet.wait();					
					this.pee();
								
				}
			}
		}
		catch(Exception e){
			System.out.print(e);
			
		}
		
		
	}
	
	public void brush() throws Exception {
		System.out.println(this.name +"brushing");
		Thread.sleep(2000);
		System.out.println(this.name +"brushed");
	}
	public void pee() throws Exception {
		System.out.println(this.name +"peeing");
		Thread.sleep(2000);
		System.out.println(this.name +"peed");
	}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值