java筆記線程兩種方式類比電影院賣票

來源:互聯網
上載者:User

標籤:java筆記   main   static   java   style   blog   靜態   int   over   

 1 public class SellTicketDemo { 2     public static void main(String[] args) { 3         // 建立三個線程對象 4         SellTicket st1 = new SellTicket(); 5         SellTicket st2 = new SellTicket(); 6         SellTicket st3 = new SellTicket(); 7  8         // 給線程對象起名字 9         st1.setName("視窗1");10         st2.setName("視窗2");11         st3.setName("視窗3");12 13         // 啟動線程14         st1.start();15         st2.start();16         st3.start();17     }18 }19 public class SellTicket extends Thread {20 21     // 定義100張票22     // private int tickets = 100;23     // 為了讓多個線程對象共用這100張票,我們其實應該用靜態修飾24     private static int tickets = 100;25 26     @Override27     public void run() {28         // 定義100張票29         // 每個線程進來都會走這裡,這樣的話,每個線程對象相當於買的是自己的那100張票,這不合理,所以應該定義到外面30         // int tickets = 100;31 32         // 是為了類比一直有票33         while (true) {34             if (tickets > 0) {35                 System.out.println(getName() + "正在出售第" + (tickets--) + "張票");36             }37         }38     }39 }
 1 public class SellTicketDemo { 2     public static void main(String[] args) { 3         // 建立資來源物件 4         SellTicket st = new SellTicket(); 5  6         // 建立三個線程對象 7         Thread t1 = new Thread(st, "視窗1"); 8         Thread t2 = new Thread(st, "視窗2"); 9         Thread t3 = new Thread(st, "視窗3");10 11         // 啟動線程12         t1.start();13         t2.start();14         t3.start();15     }16 }17 public class SellTicket implements Runnable {18     // 定義100張票19     private int tickets = 100;20 21     @Override22     public void run() {23         while (true) {24             if (tickets > 0) {25                 System.out.println(Thread.currentThread().getName() + "正在出售第"26                         + (tickets--) + "張票");27             }28         }29     }30 }


這樣的兩種方式運行結果都會有問題 負數的票。。。。->>>>

java筆記線程兩種方式類比電影院賣票

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.