课程总结:

本周主要学习进程与线程。

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();
    


    }

}

运行结果截图