H 第10章Java的线程处 第10章Java的线程处理 10.1线程的基本概念 10.2线程的属性 10.3线程组 10.4多线程程序的开发 Bac ck<
第10章 Java的线程处理 第10章 Java的线程处理 10.1 线程的基本概念 10.2 线程的属性 10.3 线程组 10.4 多线程程序的开发
H 第10章Java的线程处 10.1线程的基本概念 我们已经对多任务非常熟悉, Windows和 Linux都 是多任务的操作系统。这些操作系统可以同时运行两 个或两个以上的程序,并且看起来这些程序似乎在同 时运行。当然,除非你的计算机拥有多个处理器,否 则这些程序是不可能同时运行的。操作系统负责把系 统资源分配给这些运行中的程序,并让人感觉它们是 并发活动的。图10.1显示了支持多任务的操作系统和不 支持多任务的操作系统运行程序的情况
第10章 Java的线程处理 10.1 线程的基本概念 我们已经对多任务非常熟悉,Windows和Linux都 是多任务的操作系统。这些操作系统可以同时运行两 个或两个以上的程序,并且看起来这些程序似乎在同 时运行。当然,除非你的计算机拥有多个处理器,否 则这些程序是不可能同时运行的。操作系统负责把系 统资源分配给这些运行中的程序,并让人感觉它们是 并发活动的。图10.1显示了支持多任务的操作系统和不 支持多任务的操作系统运行程序的情况
H 第10章Java的线程处 Process 支持多任务的系统 Process Process 时间 Process 不支持多任务的系统 Process Process 时间 图10.1
第10章 Java的线程处理 图 10.1 Process Process Process 时 间 支 持 多 任 务 的 系 统 Process Process Process 时 间 不 支 持 多 任 务 的 系 统
H 第10章Java的线程处 实现多任务通常有两种方法,一种称为抢占式多 任务( preemptive multitasking);一种叫合作式多任务 ( cooperative multitasking)。对于抢占式多任务,操作系 统自行决定何时中断一个程序,将执行时间分给其他 程序。相反,对于合作式多任务操作系统将与程序进 行协商,只有程序自愿放弃控制时才被中断。虽然抢 占式多任务实现起来困难一些,但却有效得多。对于 合作式多任务来说,一个运行不好的程序会占有整个 系统
第10章 Java的线程处理 实现多任务通常有两种方法,一种称为抢占式多 任务(preemptive multitasking);一种叫合作式多任务 (cooperative multitasking)。对于抢占式多任务,操作系 统自行决定何时中断一个程序,将执行时间分给其他 程序。相反,对于合作式多任务操作系统将与程序进 行协商,只有程序自愿放弃控制时才被中断。虽然抢 占式多任务实现起来困难一些,但却有效得多。对于 合作式多任务来说,一个运行不好的程序会占有整个 系统
H 第10章Java的线程处 多线程把操作系统的多任务原理应用到程序中 进一步发展了这一原理。应用了多线程技术的程序如 同多任务操作系统一样,可以同时执行多个任务。每 个任务被称为一个线程——它是线程控制流的简称 实际上,多线程的应用非常广泛,例如,浏览器在下 载数据的同时还可以浏览其他网页,或者当某个网页 下载太慢时,还可以控制浏览器中止这个网页浏览 Java语言本身也使用一个线程在后台收集无用的内存 单元——这样就减少了用户管理内存的麻烦!
第10章 Java的线程处理 多线程把操作系统的多任务原理应用到程序中, 进一步发展了这一原理。应用了多线程技术的程序如 同多任务操作系统一样,可以同时执行多个任务。每 个任务被称为一个线程——它是线程控制流的简称。 实际上,多线程的应用非常广泛,例如,浏览器在下 载数据的同时还可以浏览其他网页,或者当某个网页 下载太慢时,还可以控制浏览器中止这个网页浏览。 Java语言本身也使用一个线程在后台收集无用的内存 单元——这样就减少了用户管理内存的麻烦!