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

      

  • 相关阅读:
    13.4 对锁和字段风格的事件的微小改变
    JavaWeb-session相关常用的方法
    JavaWeb-UUID
    JavaWeb-seession原理
    JavaWeb-HttpSession入门
    JavaWeb-Cookie的路径
    JavaWeb-Cookie的生命
    JavaWeb-Cookie介绍
    JavaWeb-JSP原理
    JSP文件生成的java文件和class文件所在的路径(eclipse和tomcat)
  • 原文地址:https://www.cnblogs.com/fliay/p/8528034.html
Copyright © 2011-2022 走看看