前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >各窗口共同卖票 【 Java 多线程 】

各窗口共同卖票 【 Java 多线程 】

作者头像
Lokinli
发布2023-03-09 18:53:44
3980
发布2023-03-09 18:53:44
举报
文章被收录于专栏:以终为始

现实中也存在这样的情况: 模拟一个火车站的售票系统,假如当日从A地发往B地的火车票只有10张,且允许所有窗口卖这10张票,每一个窗口也相当于一个线程。

1、Runnable接口实现

代码语言:javascript
复制
public class Main {

	public static void main(String[] args) {

		Test m = new Test();

		Thread w1 = new Thread(m, "window 1");
		Thread w2 = new Thread(m, "window 2");
		Thread w3 = new Thread(m, "window 3");

		w1.start();
		w2.start();
		w3.start();

	}
}

class Test implements Runnable {
	private int n = 10;

	public void run() {
		while (n > 0) {
			System.out.println(n-- + " is saled by " + Thread.currentThread().getName());
		}
	}
}

2、Thread子类实现

代码语言:javascript
复制
public class Main {

	public static void main(String[] args) {

		Ticket t = new Ticket();
		Test w1 = new Test(t,"window 1");
		Test w2 = new Test(t,"window 2");
		Test w3 = new Test(t,"window 3");
		
		w1.start();
		w2.start();
		w3.start();
	}
}

class Ticket {
	int tic = 10;
}
class Test extends Thread{
	private Ticket tick;
	public Test(Ticket tick, String name){
		super(name);
		this.tick = tick;
	}
	public void run(){
		while(tick.tic > 0){
			System.out.println(tick.tic --  + " is saled by " + Thread.currentThread().getName());
		}
	}
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-12-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档