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";
    }
    

      

  • 相关阅读:
    去掉Win10中的“此电脑”中的6个默认文件夹的方法
    Fastboot驱动及安装
    Fastboot驱动及安装
    JNI+NDK编程总结
    JNI+NDK编程总结
    20194742自动生成四则运算题第一版报告
    读构建之法现代软件工程随笔
    想法或创意
    ubuntu控制台乱码
    Java 为什么不支持多继承?
  • 原文地址:https://www.cnblogs.com/fliay/p/8528034.html
Copyright © 2011-2022 走看看