第8章多线程8.1线程概述8.2多线程设计8.3线程同步与死锁8.1线程概述8.1.1程序、进程、线程和多线程程序是由若干条语句组成的语句序列,是一段静态代码。进程是程序的一次动态执行过程。线程包含了一个计算机执行传统程序时所做的每一件事情。多线程是指同一个应用程序中有多个顺序流同时执行。8.1.2线程状态和生命周期1.新建状态2.就绪状态3.运行状态4.阻塞状态5.消亡状态8.1.3线程优先级和线程调度在Java语言中,线程的优先级是用数字来表示的,范围为1~10,如设置某线程优先级为5。另外Thread类提供3个有关线程优先级的静态属性:NORM_PRIORITY:代表普通优先级、默认优先级,缺省为5MIN_PRIORITY:代表最低优先级,通常为1MAX_PRIORITY:代表最高优先级,通常为10对于一个新建线程,系统会遵循如下的原则为其指定优先级:(1)继承创建它的父线程的优先级。(2)通过调用Thread类的setPriority(inta)方法来设置线程的优先级。当一个在就绪队列中排队的线程获得CPU资源而转入运行状态后,则称这个线程被调度。线程的调度遵循优先级基础上的抢先策略。抢先策略是指如下几个方面。(1)若一个比当前活动线程优先级更高的线程进入就绪状态时,则停止当前活动线程的执行,当前活动线程转入阻塞状态,插入就绪队列中重新等待调度,而优先级高的线程转入运行状态,成为活动线程。(2)若一个比当前活动线程优先级低的线程进入就绪状态时,则当前活动线程不停止继续执行,刚进入就绪状态的线程在就绪队列等待调度。(3)若一个与当前活动线程优先级相同的线程进入就绪状态时,则遵循“先到先服务”原则。8.2多线程设计8.2.1继承Thread类8.2.2用实现Runnable接口实现多线程8.3线程同步与死锁1.线程同步2.线程死锁