课程总结:
本周主要学习进程与线程。
1.进程是程序的一次动态执行过程
2.线程:多线程是实现并发机制的一种有效手段
3.线程的实现:a.Thread类:一个类只要继承Thread类,此类就称为多线程操作类。在Thread子类中,必须明确地覆写Thread类中的run()方法。
4.Runnable接口:实现Runnable接口可以资源共享
5.线程操作的相关方法:a 取的和设置线程名称 b判断线程是否启动 c 线程的强制运行 d 线程的休眠 e 线程的优先级 f 线程的礼让
实验总结
实验任务详情:
完成火车站售票程序的模拟。
要求:
(1)总票数1000张;
(2)10个窗口同时开始卖票;
(3)卖票过程延时1秒钟;
(4)不能出现一票多卖或卖出负数号票的情况。
实验代码
package Thread; import java.io.PrintStream; public class Mythread implements Runnable{ int ticket=1000; public void run() { while(true){ synchronized(this){ if(ticket>0){ try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } ticket--; System.out.println(Thread.currentThread().getName()+"卖票:ticket剩余"+ticket--); } if(ticket<=0){ System.out.println("票已卖完"); break; } } } } }
package Thread; public class Tset { public static void main(String[] args) { // TODO Auto-generated method stub Mythread my=new Mythread(); new Thread(my,"窗口A").start(); new Thread(my,"窗口B").start(); new Thread(my,"窗口C").start(); new Thread(my,"窗口D").start(); new Thread(my,"窗口E").start(); new Thread(my,"窗口F").start(); new Thread(my,"窗口G").start(); new Thread(my,"窗口H").start(); new Thread(my,"窗口I").start(); new Thread(my,"窗口G").start(); new Thread(my,"窗口H").start(); new Thread(my,"窗口J").start(); } }
运行结果截图