第十六周周总结 线程

    程序
    可以理解为一组静态的代码
    进程 
    正在进行的程序    静态的代码  运行起来
    线程 
    正在执行程序中的小单元
     
    1.主线程  系统线程
    2.用户线程  main
    3.守护线程(精灵)   GC

    线程------操作系统级别    CPU
    如何在Java中创建线程  让线程执行  多线程
    掌握每一个线程的几种不同状态  及状态之间如何切换
     new       start()   cpu分配run()   wait()        exception over
    创建线程----就绪状态-----执行状态-----等待/挂起------异常/死亡
                  |                        |
                  |________________________|                        
                          notify/notifyAll
   实现线程的一种过程
   1.自己描述一个类
   2.继承父类Thread
   3.重写run方法
   4.new一个线程对象   调用start()方法   让线程进入就绪状态

   实现线程的另一个过程
   1.自己描述一个类
   2.实现一个父类接口
   3.重写run方法
   4.new一个线程对象
   在runnable实现线程的过程中如果先要调用Thread中的start方法
   1.创建一个Thread对象  Thread t1 = new Thread(r1);
   2.t1.start();
public class 售票口 extends Thread {
	private int ticket=10;
	private boolean flag=true;
	public void run() {              //重写run()方法
		 while(flag) {
             try {
                 Thread.sleep(50);   //让当前线程休眠0.05秒
             }catch(Exception e) {
                 e.printStackTrace();//异常时打印异常信息在程序中出错的位置及原因
             }
            sale();
	}
}
	public synchronized void sale() {
		if(ticket>0)
	     System.out.println(Thread.currentThread().getName()+"ticket="+ticket--);//Thread.currentThread()返回当前线程变量,又启动一个新的线程
	}
} 



public class 售票口显示 {
	public static void main(String[] args) {
	售票口 m=new 售票口();
    for(char i='A';i<='C';i++) {
    new Thread(m,"窗口"+i+"售票,").start();//Thread(m,"窗口"+i+"售票,") 第一个参数是thread2线程可以映射的线程,后面的String是新线程的名称。
}
    }
}
posted @ 2019-12-14 15:06  可惜她是水瓶座  阅读(106)  评论(0编辑  收藏  举报