第九周课程总结&实验报告(七)
实验任务详情:
完成火车站售票程序的模拟。
要求:
(1)总票数1000张;
(2)10个窗口同时开始卖票;
(3)卖票过程延时1秒钟;
(4)不能出现一票多卖或卖出负数号票的情况。
1-1、实验代码
public class Mythread extends Thread { private int t=1000; public int getT() { return t; } public void setT(int t) { this.t = t; } public void run() { for(int i = 0;i<5000;i++) { synchronized(this) { if(t>0) { try { Thread.sleep(500); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println(Thread.currentThread().getName()+"卖票 = "+t--); } } } } }
1-2、实验代码
public class text { public static void main(String[] args) { Mythread m = new Mythread(); Thread m0 = new Thread(m,"一号窗口") ; Thread m1 = new Thread(m,"二号窗口") ; Thread m2 = new Thread(m,"三号窗口") ; Thread m3 = new Thread(m,"四号窗口") ; Thread m4 = new Thread(m,"五号窗口") ; Thread m5 = new Thread(m,"六号窗口") ; Thread m6 = new Thread(m,"七号窗口") ; Thread m7 = new Thread(m,"八号窗口") ; Thread m8 = new Thread(m,"九号窗口") ; Thread m9 = new Thread(m,"十号窗口") ; m0.start(); m1.start(); m2.start(); m3.start(); m4.start(); m5.start(); m6.start(); m7.start(); m8.start(); m9.start(); } }
2、运行结果截图
第九周课程总结
1、多线程
1)线程操作的主要方法
2)线程的优先级
(注:优先级高只是说明该线程优先执行的可能性较高)
3)同步和死锁
a、同步代码块
ynchronized(同步对象)
{
需同步的代码;
}
b、同步方法
synchronized 方法返回值 方法名称(参数列表){ //方法体 }
2、Java IO
1)File类中的主要方法和常量
2)RandomAccessFile类的常用操作方法