线程锁synchronized,同步notify,实现多线程并发的案例代码

public class Test {
	private Integer result=0;
 private int numVlaue=9;
 private  Integer num = 0;
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		 Test tt=new Test();
		 tt.A();
		 tt.B();
	}
	public void B() {
		new Thread(new Runnable() {
			@Override
			public void run() {
				System.out.println("B线程准备");
			        {
				System.out.println("B线程开始");		
					while(true)
					{
								
					if(num==numVlaue){
						{							
							try {
 							Thread.sleep(1);//接受线程等待接受
 						} catch (InterruptedException e) {
 							e.printStackTrace();
 						}
							synchronized (result) //获取对象锁
							{
								System.out.println("numb"+num);
								result.notify();//唤醒线程
								num=0;
								break;
 							}	
						}						
					}
					else{
						if(num==9){
							num=0;
						}else{
							num++;	
						}
						
						continue;
					}						
				}
				}
			}
		}).start();
	}
	
	public void A() {
		new Thread(new Runnable() {
			@Override
			public void run() {
				System.out.println("A线程准备"); 
				synchronized (result) {
					System.out.println("A线程开始");
					try {
						result.wait(5000);//发送线程等待时间,其他线程占用result
						System.out.println("等待结束" +result++);
						//Thread.sleep(500);
					} catch (InterruptedException e) {
						e.printStackTrace();
					}
					for (int i = 0; i < 10; i++) {
						System.out.println("a" +result++);
					
					}
				}
			}
		}).start();
	} 
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鼾声鼾语

感谢您的支持鼓励!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值