- 1、本文档共46页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第12章 多线程处理
第12章 多线程处理 学习重点: 程序、进程与线程的概念区别 Java中Thread的4种状态 Thread的典型应用 第12章 多线程处理 12.1 线程的基本概念 12.1.1 程序与进程 12.1.2 进程与线程 12.1.3 Java的线程模型 12.2 线程的基本结构与使用方法 12.2.1 线程的生命周期 12.2.2 定制run()方法 12.3 线程的管理 12.3.1 同步 12.3.2 优先级 12.3.3 有关线程的其他概念 12.4 用于制作动画的线程 12.4.1 动画程序框架 12.4.2 帧的画法 12.4.3 避免闪动 12.4.4 使用图片 12.5 练习题 12.1 线程的基本概念 12.1.1 程序与进程 程序是一个静态的概念,它是指用某种语言编写的,符合一定语法规则并具有一定功能的一些指令的集合。程序往往有开始、处理和结束3个部分组成。它的表现形式可能是一个文件,可能是一组程序的集合(如一个大的应用程序),总之它是一个完整的静态概念。 进程暂时简单理解为一段正在运行的程序,它是已经开始执行,但尚未结束的一种程序的状态,因此,相对于程序来说,进程可以看作是一个动态的概念。进程通常是一个可执行程序在内存中的一个完整副本,每个进程都有自己的数据段、栈段和代码段,因此它是一段完整的程序,在内存中占据较大的空间。 进程调度:能够实现多任务的操作系统通过一定的算法将这样的一个个进程排列成一个或多个队,一般情况下是采用FIFO,即先进先出的算法,有些进程由于其应用的特殊性可能会提高优先级,被排列在队伍的中间或者前面。同样,有些进程由于涉及过多IO操作,可能会被执行到IO时,就调度到队伍的最后。这些进程按照队伍排列好的顺序轮流被操作系统调入CPU执行。通常情况下,每个程序执行一个时间片就被调度下来,如果中间遇到有IO操作或者别的相对于CPU来说比较慢的操作,或者有其他优先级高的程序需要运行,该进程可能会被提前调度出CPU。 时间片:操作系统自己管理的一个参数。即指通常情况下每个进程连续在CPU上执行的时间长度。 12.1.2 进程与线程 线程简单的说就是一种轻量级的进程,它是一个程序中实现单一功能的一个指令序列,它是一个程序的一部分,不能单独运行,它必须在一个程序之内运行,也就是说在一个进程的环境之中运行。 我们可以将一个进程按不同功能划分为多个线程,将线程在CPU上进行开销很小的调度,因为线程只有自己的栈段和程序计数器,而没有独立的数据段和代码段。因此,这种调度是非常轻量级的工作。 12.1.3 Java的线程模型 Java的线程模型 图中一个程序(Prog. Cntr.)有N个线程组成,它们都有自己的栈段(Local Stack),而所有的线程都可以共享Global Data,它们必须在这个程序的环境下执行。 利用多线程机制,Java使整个执行环境是异步的,在Java程序里没有主消息循环。 Java语言里,线程表现为线程类(Thread),线程类封装了所有需要的线程操作控制。 线程对象和运行线程:线程对象可以看做是运行线程的控制面板。线程类是控制线程行为的惟一手段。 例12.1 操纵当前线程 程序代码
文档评论(0)