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

实验任务详情:

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

实验代码:

package gch;

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


public class test {

    public static void main(String[] args) {
        huoche mt=new huoche();
        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();
    }
}

运行截图:

学习总结:

本周实验 老师在上课的时候都讲过了的,基本上都没有什么问题。无论使用哪种方式,最终都必须依靠Thread才能启动多线程
还有主要是要区分Thread类和Runnable接口的区别,如果一个类继承Thread类,则不适合于多个线程共享资源,而实现了Runnable接口,就可以方便地实现资源共享。Thread类是Runnable接口地子类,而且
使用Runnable接口可以避免单继承局限,以及更加方便地实现数据共享。

猜你喜欢

转载自www.cnblogs.com/gchProfessor/p/11736865.html