第九周课程总结&实验报告(七)
Java实验
实验任务详情:
完成火车站售票程序的模拟。
要求:
(1)总票数1000张;
(2)10个窗口同时开始卖票;
(3)卖票过程延时1秒钟;
(4)不能出现一票多卖或卖出负数号票的情况。
实验源码:
public class Maipiao implements Runnable {
private int ticket = 1000;
public void run() {
for (int i = 1; i <= 1000; i++) {
synchronized (this) {
if(ticket==0) {
System.out.println(Thread.currentThread().getName() + "票已售完!");
break;
}
if (ticket > 0) {
ticket--;
try {
Thread.sleep(0);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName() + " 买出一张票 余票:ticket=" + ticket);
}
}
}
}
}
public class YOU {
public static void main(String[] args) {
Maipiao mp=new Maipiao();
Thread ck1 = new Thread(mp, "窗口1");
Thread ck2 = new Thread(mp, "窗口2");
Thread ck3 = new Thread(mp, "窗口3");
Thread ck4 = new Thread(mp, "窗口4");
Thread ck5 = new Thread(mp, "窗口5");
Thread ck6 = new Thread(mp, "窗口6");
Thread ck7 = new Thread(mp, "窗口7");
Thread ck8 = new Thread(mp, "窗口8");
Thread ck9 = new Thread(mp, "窗口9");
Thread ck10 = new Thread(mp, "窗口10");
ck1.start();
ck2.start();
ck3.start();
ck4.start();
ck5.start();
ck6.start();
ck7.start();
ck8.start();
ck9.start();
ck10.start();
}
}
实验结果:

实验结果:通过这一周的学习,我知道了
Java中线程的创建有如下三种基本形式。
1、继承Thread类,重写该类的run()方法。
2、实现java.lang.Runnable接口
3、使用Callable和Future接口创建线程。
线程的状态:
1.创建状态
2.就绪状态
3.运行状态
4.阻塞状态
5.死亡状态
我会好好学习的,争取有更大的进步。
浙公网安备 33010602011771号