第九周课程总结&实验报告(七)

实验任务详情:
完成火车站售票程序的模拟。
要求:
(1)总票数1000张;
(2)10个窗口同时开始卖票;
(3)卖票过程延时1秒钟;
(4)不能出现一票多卖或卖出负数号票的情况。
实验代码:

package zy123;

class MyThread implements Runnable{
	
	
	private int ticket =1000;
	public   void run() {
		for(int i=0;i<1500;i++) {
			synchronized(this) {
				if(ticket>0){
					try {
						  Thread.sleep(1000);
					}catch (InterruptedException e) {
						e.printStackTrace();
					}
	System.out.println(Thread.currentThread().getName()+" 卖:="+ticket--);
				
			}
		}
	
	}
 }
};
public class SyncDemo02{
	public static void main(String args[]) {
	  MyThread my =new MyThread();
		 Thread t1=new Thread(my,"窗口1");
		Thread t2=new Thread(my,"窗口2");
		Thread t3=new Thread(my,"窗口3");
		Thread t4=new Thread(my,"窗口4");
		Thread t5=new Thread(my,"窗口5");
		Thread t6=new Thread(my,"窗口6");
		Thread t7=new Thread(my,"窗口7");
		Thread t8=new Thread(my,"窗口8");
		Thread t9=new Thread(my,"窗口9");
		Thread t10=new Thread(my,"窗口10");
		t1.start();
		t2.start();
		t3.start();
		t4.start();
		t5.start();
		t6.start();
		t7.start();
		t8.start();
		t9.start();
		t10.start();
		
		
	}
}

实验截图:
思路:这道题参考了书上的270页等代码 使用synchronized 关键字同步数据 使之资源共享 改了一些部分

学习总结:


以上都是知识的关键点

原文地址:https://www.cnblogs.com/clearlove1215/p/11735528.html