课程总结:

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

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



    }

}

运行结果截图

01-13 01:24
查看更多