Thread2 关键字

public class Thread2 { 
     public void m4t1() { 
          synchronized(this) { 
               int i = 5; 
               while( i-- > 0) { 
                    System.out.println(Thread.currentThread().getName() + " : " + i); 
                    try { 
                         Thread.sleep(500); 
                    } catch (InterruptedException ie) { 
                    } 
               } 
          } 
     } 
     public void m4t2() { 
         int i = 5; 
         while( i-- > 0) { 
              System.out.println(Thread.currentThread().getName() + " : " + i); 
              try { 
                   Thread.sleep(500); 
              } catch (InterruptedException ie) { 
              } 
         } 
     } 
     public static void main(String[] args) { 
          final Thread2 myt2 = new Thread2(); 
          Thread t1 = new Thread(  new Runnable() {  public void run() {  myt2.m4t1();  }  }, "t1:synchronized"  ); 
          Thread t2 = new Thread(  new Runnable() {  public void run() { myt2.m4t2();   }  }, "t2"  ); 
          Thread t3 = new Thread(  new Runnable() {  public void run() { myt2.m4t2();   }  }, "t3"  ); 
          Thread t4 = new Thread(  new Runnable() {  public void run() { myt2.m4t1();   }  }, "t4:synchronized"  ); 
          t1.start(); 
          t2.start(); 
          t3.start(); 
          t4.start(); 
          
     }

}





结果: 顺序不固定:

t1:synchronized : 4

t3 : 4
t2 : 4
t3 : 3
t1:synchronized : 3
t2 : 3
t3 : 2
t1:synchronized : 2
t2 : 2
t3 : 1
t1:synchronized : 1
t2 : 1
t1:synchronized : 0
t3 : 0
t2 : 0
t4:synchronized : 4
t4:synchronized : 3
t4:synchronized : 2
t4:synchronized : 1
t4:synchronized : 0

没有更多推荐了,返回首页