多线程 - 窗口买票机制

Posted m-jj

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多线程 - 窗口买票机制相关的知识,希望对你有一定的参考价值。

public class Test extends Thread {
//通过构造方法给线程名字赋值
public Test(String name) {
super(name);
}
//保证持票数一致,票数要静态
static int tick = 2000;
//创建一个静态钥匙
static Object object = "这个有神用";

//重写run方法,实现买票操作
@Override
public void run() {
while (tick > 0) {
synchronized (object) {
if (tick > 0) {
System.out.println(getName() + "卖出了" + tick + "张票");
tick--;
} else {
System.out.println(getName() +"票卖完了");
}
}
try {
sleep(100);//休息一秒
} catch (InterruptedException e) {
e.printStackTrace();
}
}

}
/**
* 测试类
* @param args
*/
public static void main(String[] args) {
//实例化站台对象,并为每一个站台取名字
Test station1=new Test("窗口1");
Test station2=new Test("窗口2");
Test station3=new Test("窗口3");
Test station4=new Test("窗口4");
// 让每一个站台对象各自开始工作
station1.start();
station2.start();
station3.start();
station4.start();
}

以上是关于多线程 - 窗口买票机制的主要内容,如果未能解决你的问题,请参考以下文章

多线程同步-买票系统

多线程(模拟买票)-----java基础知识总结

Java多线程同步锁的理解

Java 多线程—— 线程的同步

JAVA随想:单一任务与多线程关系

简单的多线程买票模拟程序(lock解决多线程存在大安全隐患)