第九周课程总结&实验报告(七)
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.死亡状态
我会好好学习的,争取有更大的进步。