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

实验任务详情:

完成火车站售票程序的模拟。
要求:
(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类的常用操作方法

原文地址:https://www.cnblogs.com/wangweihanqq2001/p/11734635.html