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

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

学习总结

1、这周接着上周继续学习多线程,实现Runnable接口,Runnable接口是用来实现资源共享同时也可以通过Runnable接口的方式实现多线程。
Runnable接口格式:

class 类名称 implements Runnable{
     属性;
     方法;
     public viod run(){
            线程主体;
   }
}

2、Java IO
操作文件的类——File
File类的构造方法:

public File(String pathname):根据指定的路径(可以是绝对路径或相对路径)创建File对象。
public File(String parent, String child):根据指定的父文件夹和子文件或者子文件夹创建File对象
public File(File parent, Sting child):根据指定的父文件夹对象和子文件或者子文件夹创建File对象
使用RandonAcccessFile类写入数据
createNewFile(); 创建新文件
delete(); 删除一个指定文件
mkdir(); 创建一个文件夹
public String[]list(); 列出全部名称,返回一个字符串数组
public File[]listFiles(); 列完整的路径,返回一个File对象数组
isDirectory(); 判断一个给定的路径是否是目录

实验报告

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

package Sysss;

public class Sy1 implements Runnable{
    private int ticket =1000;
    public void run() {
        while(ticket>0){
            synchronized(this) {
                if(ticket>0) {
                    try {
                        Thread.sleep(1000);
                    }catch(InterruptedException e) {
                        e.printStackTrace();
                    }
                    ticket--;
                    System.out.println(Thread.currentThread().getName()+":售出一张票:剩余"+ticket+"张票");
                    
                    if(ticket==0) {
                        System.out.println("票已售完");
                    }
                }
            }
        }
    }
}
package Sysss;

	public class Sy2 {
	    public static void main(String[] args) {
	        Sy1 zx=new Sy1();
	        Thread sy1 = new Thread(zx, "窗口1");
	        Thread sy2 = new Thread(zx, "窗口2");
	        Thread sy3 = new Thread(zx, "窗口3");
	        Thread sy4 = new Thread(zx, "窗口4");
	        Thread sy5 = new Thread(zx, "窗口5");
	        Thread sy6 = new Thread(zx, "窗口6");
	        Thread sy7 = new Thread(zx, "窗口7");
	        Thread sy8 = new Thread(zx, "窗口8");
	        Thread sy9 = new Thread(zx, "窗口9");
	        Thread sy10 = new Thread(zx, "窗口10");

	        sy1.start();
	        sy2.start();
	        sy3.start();
	        sy4.start();
	        sy5.start();
	        sy6.start();
	        sy7.start();
	        sy8.start();
	        sy9.start();
	        sy10.start();
	    }
	}

原文地址:https://www.cnblogs.com/caoe666/p/11740946.html