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

实验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类,对文件内容进行操作。

原文地址:https://www.cnblogs.com/xiao--liang/p/11729172.html