執行緒同步的詭異:求指點

blackplume發表於2015-04-28

public class BUYER {
 public static void main(String[] args) { 
  TestThread a=new TestThread(); 
  TestThread B=new TestThread();
  a.setName("A");
  B.setName("B");
  a.start();  
  B.start();
 }
}
class TestThread extends Thread
{
 static int Rest=10;//剩餘票數
 int buy_1=7;//購買票數
 
 public void run(){
  int a=Rest;
  if(a>buy_1){ 
   a=a-buy_1; 

Rest=a; //①為什麼該語句放在這裡永遠無法出現同時購票成功的情況

   System.out.println(Thread.currentThread().getName()+"\n Success .");  
   //  ② Rest=a; 
    }else
   System.out.println(Thread.currentThread().getName()+"\n fail .");

}
}

//①處售票的情況處理永是真確的.②處售票的情況處理可能出現同時成功的現象?

知道何解的mankind求指點下.

相關文章