第九周课程总结&实验报告(七)
第九周课程总结&实验报告(七)
学习总结
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();
}
}