第九周总结&第七次实验报告

实验7

实验任务详情:

完成火车站售票程序的模拟。

要求:

  • (1)总票数1000张;
  • (2)10个窗口同时开始卖票;
  • (3)卖票过程延时1秒钟;
  • (4)不能出现一票多卖或卖出负数号票的情况。

    实验过程

package shiyan7;

public class Mythread implements Runnable {
    private int ticket = 1000;
    public void run() {
        for(int i = 0;i < 1000;i ++) {
            synchronized(this) {
                if(ticket > 0) {
                    try {
                        Thread.sleep(1000);
                    }catch(InterruptedException e) {
                        e.printStackTrace();
                    }
                    System.out.println(Thread.currentThread().getName()+"卖票:"+ticket--);
                }
            }
        }
    }

}

package shiyan7;

public class Maipiaoge {
    public static void main(String args[]) {
        Mythread mp = new Mythread();
        for(int i = 1;i < 11;i ++) {
            Thread xc[] = new Thread[11];
            xc[i] = new Thread(mp,"买票窗口" + i);
            xc[i].start();
        }
        
    }

}

实现结果


因等一秒要点时间,所以这个截屏没有等。

实验总结

本次实验让我知道了多线程的作用,并且初步实现了多线程,更加熟练的使用多线程

第九周总结

本周主要学习了,线程的几种状态,线程的操作及其方法,Java的IOName()方法设置线程名字,可以允许线程同名,但应该避免这种事情发生,如果没有设置线程名称那么系统会默认设置一个名字为Thread-Xx。

Java中用isAliva()来判断线程是否启动并且还在运行。

Java中可以用join()方法让一个线程强制运行,并且这个期间,其他线程只能等,不能运行。
用Thread.sleep()让线程休眠,用interrupt()方法中断线程用setDaemon()方法让线程在后台运行。
线程的优先级

但并不是线程的优先级越高,就一定会先执行,那个线程先执行还是由CPU来调度。
线程的礼让,可以用yield()方法将一个线程的操作暂时让给其它线程执行,但并不是一定会让,还是由CPU决定。

JavaIO

file类,与文件本身有关的类,可以用它,新建文件,删除文件等操作。

可以用createNewFile()创建文件,但是windows是反斜杠分隔,linux用正斜杠分隔,所以一般用Java提供的两个常量pathSeparator,setparator
用delete()方法删除文件。exists()判断文件是否存在
用mkdir()方法创建文件夹,用public String[] list():列出全部名称,public File listFiles():列出完整路径。
RandomAccessFile类,对文件内容进行操作。

猜你喜欢

转载自www.cnblogs.com/xiao--liang/p/11729172.html