Java多线程实例:模拟窗口卖票过程

几个窗口同时卖票,共享相同的余票,某窗口卖出某张票后,其余窗口不能再卖这张票
用Java多线程模拟这个过程
步骤:1.定义类实现Runnable接口
2.覆盖runnable接口中的run方法
3.通过Thread类建立线程对象
4.将Runnable接口的子类对象作为实际参数传递给Thread类的构造函数
5.调用Thread类的start方法开启线程并调用Runnable接口子类的run方法
实现方式和继承方式有什么区别?
Java只支持单继承
利用接口Runnable
因此:
实现方式好处:避免了单继承的局限性,在定义线程时,建议使用实现方式。
两种方法区别:
继承Thread:线程代码存放在Thread子类run方法
实现Runnable,线程代码存在接口的子类的run方法

package ThreadDemo;
/*
 * 需求:简单的卖票程序
 * 多个窗口同时买票
 * */
class Ticket implements Runnable//extend Thread
{
private  int tick = 100; 
public void run()
	{
while(true)
		{
	if(tick>0)
		System.out.println(Thread.currentThread().getName()+"---sale:"+tick--);	
		}
	}

}
public class TicketDemo {
public static void main(String[] args)
{
	Ticket t = new Ticket();
	Thread t1 = new Thread(t);
	Thread t2 = new Thread(t);
	Thread t3 = new Thread(t);
	Thread t4 = new Thread(t);
	t2.start();
	t3.start();
	t4.start();
	t1.start();
}
}

运行结果

Thread-1---sale:100
Thread-1---sale:99
Thread-1---sale:98
Thread-1---sale:97
Thread-2---sale:96
Thread-2---sale:95
Thread-2---sale:94
Thread-3---sale:93
Thread-1---sale:91
Thread-2---sale:92
Thread-1---sale:89
Thread-3---sale:90
Thread-1---sale:87
Thread-1---sale:85
Thread-1---sale:84
Thread-1---sale:83
Thread-1---sale:82
Thread-1---sale:81
Thread-1---sale:80
Thread-1---sale:79
Thread-1---sale:78
Thread-1---sale:77
Thread-1---sale:76
Thread-1---sale:75
Thread-1---sale:74
Thread-1---sale:73
Thread-1---sale:72
Thread-1---sale:71
Thread-1---sale:70
Thread-1---sale:69
Thread-1---sale:68
Thread-1---sale:67
Thread-1---sale:66
Thread-1---sale:65
Thread-1---sale:64
Thread-1---sale:63
Thread-1---sale:62
Thread-1---sale:61
Thread-1---sale:60
Thread-1---sale:59
Thread-1---sale:58
Thread-1---sale:57
Thread-1---sale:56
Thread-1---sale:55
Thread-1---sale:54
Thread-1---sale:53
Thread-1---sale:52
Thread-1---sale:51
Thread-1---sale:50
Thread-1---sale:49
Thread-1---sale:48
Thread-1---sale:47
Thread-1---sale:46
Thread-1---sale:45
Thread-1---sale:44
Thread-1---sale:43
Thread-1---sale:42
Thread-1---sale:41
Thread-1---sale:40
Thread-1---sale:39
Thread-1---sale:38
Thread-1---sale:37
Thread-1---sale:36
Thread-1---sale:35
Thread-1---sale:34
Thread-1---sale:33
Thread-1---sale:32
Thread-1---sale:31
Thread-1---sale:30
Thread-1---sale:29
Thread-1---sale:28
Thread-1---sale:27
Thread-1---sale:26
Thread-1---sale:25
Thread-1---sale:24
Thread-1---sale:23
Thread-1---sale:22
Thread-1---sale:21
Thread-1---sale:20
Thread-1---sale:19
Thread-1---sale:18
Thread-1---sale:17
Thread-1---sale:16
Thread-1---sale:15
Thread-1---sale:14
Thread-1---sale:13
Thread-1---sale:12
Thread-1---sale:11
Thread-1---sale:10
Thread-2---sale:88
Thread-2---sale:9
Thread-2---sale:8
Thread-2---sale:7
Thread-2---sale:6
Thread-2---sale:5
Thread-2---sale:4
Thread-2---sale:3
Thread-2---sale:2
Thread-2---sale:1
Thread-1---sale:0
Thread-3---sale:86

完美 ,yeah
这也就是创建线程的第二种方式

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值