售票问题 线程的同步问题-同步方法

 

完整代码: http://yuncode.net/code/c_50434dc5205ae66

  
  
  
  
  1. public class Test {  
  2.     public static void main(String[] args) {  
  3.         TestThread t = new TestThread();  
  4.  
  5.         // 7个售票窗口  
  6.         new Thread(t).start();  
  7.         new Thread(t).start();  
  8.         new Thread(t).start();  
  9.         new Thread(t).start();  
  10.         new Thread(t).start();  
  11.         new Thread(t).start();  
  12.         new Thread(t).start();  
  13.     }  
  14. }  
  15.  
  16. class TestThread implements Runnable {  
  17.     private int tickets = 20;  
  18.  
  19.     public void run() {  
  20.         while (true) {  
  21.             sale();  
  22.         }  
  23.     }  
  24.  
  25.     public synchronized void sale() {  
  26.  
  27.         if (tickets > 0) {  
  28.             try {  
  29.                 Thread.sleep(100);  
  30.             } catch (Exception e) {  
  31.             }  
  32.             System.out.println(Thread.currentThread().getName() + "售票, 余票" 
  33.                     + --tickets);  
  34.         } else {  
  35.             System.out.println("票已售完...");  
  36.             System.exit(0);  
  37.         }  
  38.  
  39.     }  

 

你可能感兴趣的:(java,源代码,同步,线程同步)