如程序1所示,本人简单的模拟四个人同时售卖车票的情况,并统计每个人买的几号票.车票共10张,一开始本人未设置任何延迟时间,所以看上去所有的票几乎是一瞬间卖完,为了提高真实性,我加入...
如程序1所示,本人简单的模拟四个人同时售卖车票的情况,并统计每个人买的几号票.车票共10张,一开始本人未设置任何延迟时间,所以看上去所有的票几乎是一瞬间卖完,为了提高真实性,我加入一个随机数来做延迟时间,如程序2,但这时就发生了一个很有意思的现象,竟然有人卖出负号票,怎么回事?望大神详解
import java.util.*;
import java.text.*;
class Demo
{
public static void main(String[] args)
{
SaleMan s0 = new SaleMan();
s0.setName("张三");
SaleMan s1 = new SaleMan();
s1.setName("李四");
SaleMan s2 = new SaleMan();
s2.setName("王五");
SaleMan s3 = new SaleMan();
s3.setName("赵六");
s0.start();
s1.start();
s2.start();
s3.start();
}
}
class SaleMan extends Thread
{
private static int tickit = 10;
int num = 0;
Random rd = new Random();
long time = 0;
public void run() {
while(tickit>0){
num++;
System.out.println(this.getName()+"\ttickitNumber:"+(tickit--));
}
}
}
程序2:在run()方法中加入
try{
time = rd.nextInt(1000);
sleep(time);
}catch(InterruptedException e){
System.out.println("打断异常");
}
结果1:
结果2:
顺便补充一下,本人并不是做一个订票或者卖票系统,这样说只是希望大家能快速理解我的程序和思路.谢谢
展开