多執行緒操作同一個物件的例子(引出併發)
阿新 • • 發佈:2020-07-15
多執行緒操作同一個物件的例子(引出併發)
//多個執行緒同時操作同一個物件 //買火車票的例子 //發現問題:多個執行緒操作同一個資源的情況下,執行緒不安全,資料混亂。 public class TestThread4 implements Runnable{ //票數 private int ticketNums = 10; @Override public void run() { while (true){ if (ticketNums<=0){ break; } //模擬延時 try { Thread.sleep(200); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println(Thread.currentThread().getName()+"拿到了第"+ticketNums--+"票"); } } public static void main(String[] args) { TestThread4 ticket = new TestThread4(); new Thread(ticket,"小明").start(); new Thread(ticket,"小紅").start(); new Thread(ticket,"黃牛黨").start(); } }