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

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

package demo;

public class MyThread implements Runnable {
    private int ticket=20;
    public void run() {
        for(int i=0;i<10;i++) {
            synchronized(this) {
                if(ticket>0) {
                    try {
                        Thread.sleep(1000);
                    }catch(Exception e) {
                        e.printStackTrace();
                    }
                    System.out.println(Thread.currentThread().getName()+"运行,ticket="+ticket--);
                }
            }
        }
    }
};
package demo;

public class test1 {

	  public static void main(String[] args) {
	        MyThread mt=new MyThread();
	        Thread t1=new Thread(mt,"A窗口");
	        Thread t2=new Thread(mt,"B窗口");
	        Thread t3=new Thread(mt,"C窗口");
	        Thread t4=new Thread(mt,"D窗口");
	        Thread t5=new Thread(mt,"E窗口");
	        Thread t6=new Thread(mt,"F窗口");
	        Thread t7=new Thread(mt,"H窗口");
	        Thread t8=new Thread(mt,"I窗口");
	        Thread t9=new Thread(mt,"J窗口");
	        Thread t0=new Thread(mt,"K窗口");
	        t1.start();
	        t2.start();
	        t3.start();
	        t4.start();
	        t5.start();
	        t6.start();
	        t7.start();
	        t8.start();
	        t9.start();
	        t0.start();
	    }

}

二:运行截图

学习总结
(1)对于多线程取得和设置线程名称,线程的是否启动,线程的强制运行,线程的休眠,线程的礼让问题。
(2)对于java IO操作文件类——File的介绍与对File类主要方法与构造类的了解。
(3) 主线程有可能比其他线程先执行完。
(4)可以使用 Thread 类中的 setPriority() 方法来设置线程的优先级。

posted on 2019-10-25 22:47  佳佳佳333  阅读(131)  评论(1编辑  收藏  举报