zoukankan      html  css  js  c++  java
  • 使用Condition循环依次打印123

    package 多线程线程通信;
    
    import java.util.concurrent.locks.Condition;
    import java.util.concurrent.locks.Lock;
    import java.util.concurrent.locks.ReentrantLock;
    
    public class Condition轮流依次输出ABC {
    	
    	Lock lock= new ReentrantLock();
    	
    	Condition ca = lock.newCondition();
    	Condition cb = lock.newCondition();
    	Condition cc = lock.newCondition();
    	static int count=1;
    	
    	public static void main(String[] args) {
    		final Condition轮流依次输出ABC abc = new Condition轮流依次输出ABC();
    		for(int i=0;i<100;i++){
    		new Thread(new Runnable() {
    			
    			public void run() {
    				
    				try {
    					abc.OutA(abc);
    					abc.OutB(abc);
    					abc.OutC(abc);
    				} catch (InterruptedException e) {
    					// TODO Auto-generated catch block
    					e.printStackTrace();
    			}
    			}
    		}).start();
    		}
    		
    	}
    	public  void OutA(Condition轮流依次输出ABC v) throws InterruptedException{
    		lock.lock();
    			if(v.count == 1){
    				System.out.println("A:"+v.count);
    				v.count=2;
    				ca.await();
    			}
    			cb.signal();
    		lock.unlock();
    	} 
    	public  void OutB(Condition轮流依次输出ABC v) throws InterruptedException{
    		lock.lock();
    		if(v.count == 2){
    			System.out.println("B:"+v.count);
    			v.count=3;
    			cb.await();
    		}
    		cc.signal();
    	lock.unlock();
    	} 
    	
    	public  void OutC(Condition轮流依次输出ABC v) throws InterruptedException{
    		lock.lock();
    		if(v.count == 3){
    			System.out.println("C:"+v.count);
    			v.count=1;
    			cc.await();
    		}
    		ca.signal();
    	lock.unlock();
    	} 
    
    }
    
    
    class value{
    	
    	static	String  value="A";
    }
    

      

  • 相关阅读:
    H3C S3600-28TP-SI配置命令
    笔记本双网卡内外同上
    计算机存储单位与宽带单位
    linux 设置网卡
    linux 挂载命令详解
    vue实现京东动态楼层效果
    js字符与ASCII码互转的方法
    UartAssist串口调试工具
    高字节和低字节是什么意思?
    int16, int32, int64等类型说明
  • 原文地址:https://www.cnblogs.com/fliay/p/8528034.html
Copyright © 2011-2022 走看看