1 package day2_4;
2
3 /**
4 * 例子:创建三个窗口卖票,总票数为100张,使用继承Thread的方式
5 * 因为没有线程对象都有自己的ticket,所以每个窗口都卖100张票
6 * 解决方法时将ticket改为 static,但仍然有问题:执行过程中都会卖相同号的票
7 * 存在线程安全问题,待解决
8 *
9 *
10 * @Author Tianhao
11 * @create 2021-02-04-11:44
12 */
13
14
15 class Window extends Thread {
16
17 // private int ticket = 100;
18
19 //解决方案
20 private static int ticket = 1000;
21
22
23 @Override
24 public void run() {
25 while (true) {
26 if (ticket > 0) {
27 System.out.println(getName() + "卖票,票号:" + ticket);
28 ticket--;
29 } else {
30 break;
31 }
32 }
33 }
34 }
35
36 public class WindowTest {
37 public static void main(String[] args) {
38 Window window = new Window();
39 window.setName("窗口1");
40 window.start();
41
42 Window window2 = new Window();
43 window2.setName("窗口2");
44 window2.start();
45
46 Window window3 = new Window();
47 window3.setName("窗口3");
48 window3.start();
49 }
50
51 }