[JAVA多线程]顺序打印ABC

代码如下:
有陷阱,有意者请分析

public class PrintABCByOrder {    
    private static final Object object = new Object();    
   
    public static void main(String[] args) {        
          OrderThread A = new OrderThread(1, "A");        
          OrderThread B = new OrderThread(2, "B");        
          OrderThread C = new OrderThread(3, "C");        
          A.start();        
          B.start();        
          C.start();        
          OrderThread.count ++;        
     }    


    private static class OrderThread extends Thread {        
          volatile static int count;        
          int order;       
           String message;        
          
          OrderThread(int order, String message) {            
              this.order = order;            
              this.message = message;        
          }        
        
        @Override        
        public void run() {            
            synchronized (object) {               
                   while (count != this.order) {                    
                          try {                        
                                    object.wait();                 
                         } catch (InterruptedException e) {                        
                                    e.printStackTrace();                   
                        }                
                 }                
                System.out.println(message);                
                count++;                
                object.notifyAll();          
            }       
       }    
    }
}

很好的一篇文章


Wait-Notify机制

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容