第九周作业

本小妞迷上赌 提交于 2019-12-02 09:09:25

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

1)实验代码

package text8;

public class MyThread implements Runnable{

    private int tickets=1000;
    
    public int getTickets() {
        return tickets;
    }

    public void setTickets(int tickets) {
        this.tickets = tickets;
    }

    public void run() {
        while(true) {
            synchronized(this){
                try {
                    if(tickets>0) {
                        System.out.println(Thread.currentThread().getName()+":是第 "+tickets+" 张票 ");
                        tickets--;
                    }
                    Thread.sleep(1000);
                }catch(Exception e) {
                    System.out.println(e.getMessage());
                }
            }
            if(tickets<=0){
                break;
            }
        }
    }

}
package text8;

public class Text8 {

    public static void main(String[] args) {
        MyThread mt=new MyThread();
        
        new Thread(mt,"窗口1").start();
        new Thread(mt,"窗口2").start();
        new Thread(mt,"窗口3").start();
        new Thread(mt,"窗口4").start();
        new Thread(mt,"窗口5").start();
        new Thread(mt,"窗口6").start();
        new Thread(mt,"窗口7").start();
        new Thread(mt,"窗口8").start();
        new Thread(mt,"窗口9").start();
        new Thread(mt,"窗口10").start();
        
    }

}

2)运行截图

程总结
这周主要学习了多线程还学了一点关于Java的输入输出(主要是关于文件的)

多线程
Java中多线程的实现主要是通过继承Thread类或实现Runnable接口。其中Runnable接口可以资源共享。但不管使用哪种方法都要通过覆写run();

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!