1 /** 2 * 使用同步方法模拟12306抢票 3 */ 4 public class SynMethed12306 { 5 public static void main(String[] args) { 6 Web12306 one = new Web12306(); 7 new Thread(one, "张三").start(); 8 new Thread(one, "李四").start(); 9 new Thread(one, "王五").start(); 10 } 11 } 12 13 class Web12306 implements Runnable{ 14 private int number = 50; //票数 15 private boolean flag = true; //标识符 16 @Override 17 public void run() { 18 while(flag) { 19 try { 20 Thread.sleep(100); 21 } catch (InterruptedException e) { 22 e.printStackTrace(); 23 } 24 test(); 25 } 26 } 27 28 public synchronized void test() { //同步锁关键字 29 if(number <= 0) { 30 flag = false; 31 return; 32 } 33 System.out.println(Thread.currentThread().getName() + "-->" + number--); 34 } 35 36 }
原文:https://www.cnblogs.com/zhang741741/p/13268926.html