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

各窗口单独卖票 【 Java 多线程 】

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

多窗口卖票,需求如下: 假设一个影院有三个售票口,分别用于向儿童、成人和老人售票。 影院为每个窗口放有10张电影票,分别是儿童票、成人票和老人票。 三个窗口需要同时卖票, 而现在只有一个售票员,这个售票员就相当于一个CPU,三个窗口就相当于三个线程。

1 通过扩展Thread类来创建多线程

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

	public static void main(String[] args) {
		
		Test w1 = new Test("window 1");
		Test w2 = new Test("window 2");
		Test w3 = new Test("window 3");
		
		w1.start();  // start 调用
		w2.start();
		w3.start();
	}
}

class Test extends Thread{  // 继承 Thread
	private int n = 10;
	Test(String name){
		super(name);
	}
	public void run(){  //重写
		while(n > 0){
			System.out.println(n -- + " is saled by " + currentThread().getName());
		}
	}
}

2、通过实现Runnable接口来创建 多线程 (推荐)

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

	public static void main(String[] args) {

		Test w1 = new Test("window 1"); 
		Test w2 = new Test("window 2");
		Test w3 = new Test("window 3");

		Thread m1 = new Thread(w1);
		Thread m2 = new Thread(w2);
		Thread m3 = new Thread(w3);

		m1.start();
		m2.start();
		m3.start();
	}
}

class Test implements Runnable {
	private int n = 10;
	private String name;

	Test(String name) {
		this.name = name;
	}

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

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

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

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

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