实验任务详情:
完成火车站售票程序的模拟。
要求:
(1)总票数1000张;
(2)10个窗口同时开始卖票;
(3)卖票过程延时1秒钟;
(4)不能出现一票多卖或卖出负数号票的情况。
源代码
package 实验室;
public class MyThread implements Runnable {
private int ticket=1000;
public void run() {
for(int i=0;i<10000;i++) {
this.sale1();
}
}
public synchronized void sale1() {
if(ticket>0) {
try {
Thread.sleep(1000);
}catch(InterruptedException e) {
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName()+"卖票:ticket="+ticket--);
}
}
}
package 实验室;
public class ticket {
public static void main(String args[]) {
MyThread my=new MyThread();
Thread t1 = new Thread(my,"窗口A");
Thread t2 = new Thread(my,"窗口B");
Thread t3 = new Thread(my,"窗口C");
Thread t4 = new Thread(my,"窗口D");
Thread t5 = new Thread(my,"窗口E");
Thread t6 = new Thread(my,"窗口F");
Thread t7 = new Thread(my,"窗口G");
Thread t8 = new Thread(my,"窗口H");
Thread t9 = new Thread(my,"窗口I");
Thread t10 = new Thread(my,"窗口J");
t1.start();
t2.start();
t3.start();
t4.start();
t5.start();
t6.start();
t7.start();
t8.start();
t9.start();
t10.start();
}
}
总结
这次作业和书上那个原理相似,复现老师上课讲的基本能完成
synchronized();同步代码块的使用
本周学习IO 还有进程和线程,以及他们的区别
浙公网安备 33010602011771号