美文网首页
多线程按顺序输出ABC

多线程按顺序输出ABC

作者: 抓兔子的猫 | 来源:发表于2016-09-06 16:22 被阅读345次
    /** 
    * @author  mengwen  E-mail:  meng_wen@126.com
    * @date 创建时间:2016年8月30日 下午3:10:32 
    * @version 1.0 
    * @parameter  
    * @since  
    * @return  
    */
    public class MyThreadPrinter2 implements Runnable {
    
        private String name;
        private Object prev;
        private Object self;
        
        public MyThreadPrinter2(String name, Object prev, Object self) {
            this.name = name;
            this.prev = prev;
            this.self = self;
        }
    
    
        @Override
        public void run() {
            int count = 10;
            while(count>0){
                synchronized (prev) {
                    synchronized (self) {
                        System.out.println(name);
                        count--;
                        self.notify();
                    }
                    try {
                        prev.wait();
                    } catch (InterruptedException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                }
            }
            
        }
        
        
        public static void main(String[] args) throws InterruptedException {
            Object a = new Object();
            Object b = new Object();
            Object c = new Object();
            MyThreadPrinter2 pa = new MyThreadPrinter2("A", c, a);
            MyThreadPrinter2 pb = new MyThreadPrinter2("B", a, b);
            MyThreadPrinter2 pc = new MyThreadPrinter2("C", b, c);
            
            new Thread(pa).start();
            Thread.sleep(100);
            new Thread(pb).start();
            Thread.sleep(100);
            new Thread(pc).start();
            Thread.sleep(100);
        }
    
    }
    

    相关文章

      网友评论

          本文标题:多线程按顺序输出ABC

          本文链接:https://www.haomeiwen.com/subject/xibdettx.html