实验要求:
完成火车站售票程序的模拟。
要求:
(1)总票数1000张;
(2)10个窗口同时开始卖票;
(3)卖票过程延时1秒钟;
(4)不能出现一票多卖或卖出负数号票的情况。
实验代码:
package demo; public class MyThread implements Runnable{ private int ticket=100; public void run() { for(int i=0;i<100;i++) { synchronized(this) { if(ticket>0) { try{ Thread.sleep(1000); }catch(InterruptedException e) { e.printStackTrace(); } System.out.println("出票成功:"+ticket--); } } } } }
package demo; public class test { public static void main(String[] args) { MyThread mt=new MyThread(); for(int i=0;i<9;i++) { Thread i1=new Thread(mt); i1.start(); } } }
学习总结:
1.多线程问题:关于实现多线程有两种办法。第一种通过继承Thread类,这种方法不能够实现数据共享;第二种实现Runnable接口。
2.同步问题:要实现数据同步可以通过同步代码块和同步方法实现,关键词synchronized。
3.操作文件的类--File;学到了File的一些方法,使用File类去修改文件的操作。 注:使用File类要引入java.io。