package xiancheng;
//Thread类实现了Runnable 接口
//比较两者的范例
//程序ThreadDemo_3.java 是一饿模拟铁路售票系统的范例,实现4个售票点来发售某日某次列车的车票20张,一个售票点用一个线程来表示。
public class ThreadDemo_3{
public static void main(String[] args){
// TestThread t= new TestThread();
// //一个线程对象只能启动一次
// t.start();
// t.start();
// t.start();
// new TestThread().start();
// new TestThread().start();
// new TestThread().start();
// new TestThread().start();
// //这四个对象各自有各自的资源,可以得出结论:用Thread类实际上无法达到自愿共享的目的
//
TestThread t= new TestThread();
//启动了四个线程,并实现自愿共享的目的
new Thread(t).start();
new Thread(t).start();
new Thread(t).start();
new Thread(t).start();
}
}
//class TestThread extends Thread{
// private int tickets=20;
// public void run(){
// while(true){
// if(tickets>0){
// System.out.println(Thread.currentThread().getName()+"出售票"+tickets--);
// //Thread.currentThread().getName() 取得当前线程的名称
// }
// }
//
// }
//}
class TestThread implements Runnable{
private int tickets=100;
public void run(){
while(true){
if(tickets>0){
System.out.println(Thread.currentThread().getName()+"出售票"+tickets--);
}
}
}
}
一共对比了三种实现的方法
上述代码执行结果
Thread-0出售票100
Thread-0出售票99
Thread-0出售票98
Thread-0出售票97
Thread-0出售票96
Thread-0出售票95
Thread-0出售票94
Thread-0出售票93
Thread-0出售票92
Thread-0出售票91
Thread-0出售票90
Thread-0出售票89
Thread-0出售票88
Thread-0出售票87
Thread-0出售票86
Thread-0出售票85
Thread-0出售票84
Thread-0出售票83
Thread-0出售票82
Thread-1出售票81
Thread-0出售票80
Thread-1出售票79
Thread-0出售票78
Thread-1出售票77
Thread-0出售票76
Thread-2出售票74
Thread-1出售票75
Thread-2出售票72
Thread-0出售票73
Thread-0出售票68
Thread-0出售票67
Thread-0出售票66
Thread-0出售票65
Thread-0出售票64
Thread-0出售票63
Thread-0出售票62
Thread-0出售票61
Thread-0出售票60
Thread-0出售票59
Thread-0出售票58
Thread-0出售票57
Thread-0出售票56
Thread-0出售票55
Thread-0出售票54
Thread-0出售票53
Thread-0出售票52
Thread-0出售票51
Thread-0出售票50
Thread-0出售票49
Thread-0出售票48
Thread-0出售票47
Thread-0出售票46
Thread-0出售票45
Thread-0出售票44
Thread-0出售票43
Thread-0出售票42
Thread-0出售票41
Thread-0出售票40
Thread-0出售票39
Thread-0出售票38
Thread-0出售票37
Thread-0出售票36
Thread-0出售票35
Thread-0出售票34
Thread-0出售票33
Thread-0出售票32
Thread-0出售票31
Thread-0出售票30
Thread-0出售票29
Thread-0出售票28
Thread-0出售票27
Thread-0出售票26
Thread-0出售票25
Thread-0出售票24
Thread-0出售票23
Thread-0出售票22
Thread-0出售票21
Thread-0出售票20
Thread-0出售票19
Thread-0出售票18
Thread-0出售票17
Thread-0出售票16
Thread-0出售票15
Thread-0出售票14
Thread-2出售票69
Thread-2出售票12
Thread-2出售票11
Thread-2出售票10
Thread-2出售票9
Thread-2出售票8
Thread-2出售票7
Thread-2出售票6
Thread-2出售票5
Thread-2出售票4
Thread-2出售票3
Thread-2出售票2
Thread-2出售票1
Thread-3出售票70
Thread-1出售票71
Thread-0出售票13