/*
例子:创建三个窗口卖票,总共100张,使用实现Runnable接口的方式
存在线程安全问题,待解决
*/
package com.atguigu.java1;
/**
* 例子:创建三个窗口卖票,总共100张,使用实现Runnable接口的方式
*存在线程安全问题,待解决
*
* @author Dxkstart
* @create 2021-05-06 18:25
*/
public class WindowTest2 {
public static void main(String[] args) {
//3.创建实现类的对象
Window1 w1 = new Window1();
//4.将此对象作为参数传递到Thread类的构造器中,创建Thread类的对象
Thread t1 = new Thread(w1);
Thread t2 = new Thread(w1);
Thread t3 = new Thread(w1);
//5.通过Thread类的对象调用start()
t1.setName("窗口一:");
t2.setName("窗口二:");
t3.setName("窗口三:");
t1.start();
t2.start();
t3.start();
}
}
// 1.创建一个实现Runnable接口的类
class Window1 implements Runnable {
private int ticket = 100;
//2.实现类去实现Runnable中的抽象方法:run()
@Override
public void run() {
while (true) {
if (ticket > 0) {
System.out.println(Thread.currentThread().getName()+
"卖票,票号为:" + ticket);
ticket--;
} else {
break;
}
}
}
}