- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第10章:多线程机制
概 述
· 在计算机编程中 , 一个基本的概念就是同时对 多个任务加以控制 , 它们要求将问题划分 , 进 入独立运行的程序片断中 , 使整个程序能更迅 速地响应用户的请求 。在一个程序中 , 这些独 立运行的片断叫做“线程 ”(Thread) 。
· 正如字面上所表述的那样 , 多线程就是同时有 多个线程在执行 。在多CPU的计算机中 , 多线
程的实现是真正的物理上的同时执行 。而对于 单CPU的计算机而言 , 实现的只是逻辑上的同 时执行 。在每个时刻 , 真正执行的只有一个线 程 , 由操作系统进行线程管理调度 , 但由于
CPU 的速度很快 , 让人感到像是多个线程在同 时执行。
也可以这样理解 , 我们把正在计算机中执行的程序叫做进程 , 而把程序代码的 执行位置叫做线程 , 把程序用了多少内存或是打开了多少文件等系统资源的集 合叫做任务 。线程的划分尺度小于进程 , 使得多线程程序的并发性高 , 那么一 个任务中可以没有线程 , 因为系统资源可以单独存在 , 就是你不用它 , 它仍然 存在; 但任何一个线程一定存在于某个任务中 , 因为代码执行一定会用到资源 。
多进程与多线程是多任务的两种类型 。Java通过提供Package类
(java . lang .package)支持多进程 , 而提供Thread类来支持多线程 。 多线程的 意义在于在一个应用程序中 , 有多个执行部分可以同时执行 。但多进程中 , 操 作系统并没有将多个线程看做多个独立的应用 。这也是进程与线程的重要区别 。
10.1 多线程
1 线程的概念
多线程优点: 多线程比多进程更方便于共享资源 , 而Java又提供了一套先进的 同步原理解决线程之间的同步问题 , 使得多线程设计更易发挥作用 。
进程(process): 一般来说 , 我们把程序的一 次执行称为进程 。 一个进程包括 一个程序模块和该模块一 次执行时所处理的数据 。
线程(thread): 是指进程内部一段可独立执行的有独立控制流的指令序列 。
10. 1.
·
·
·
·
·
·
public final static in MAX_PRIORITY= 1
public final static in NORM_PRIORITY=
public final static in MIN_PRIORITY= 1
线程可设定的最高优先值为10。
Thread的成员变量有以下三个:
线程可设定的正常优先值为5。
线程可设定的最低优先值为1。
10. 1.2线程类 (Thread)
MAX_PRIORITY= 1
NORM_PRIORITY=
·
· · ·
0
5
·
·
·
配置一个属于group线程组的新的线程对象, 调用可执行类对象target中的run ()方法 , 并 设线程的名称为name 。
Thread类的比较常用的构造函数形式如下:
配置一个新的线程对象,调用可执行类对象target中的run ()方法,并设线程的名称为name
配置一个属于group线程组的新的线程对象, 调用可执行类对象target中的run ()方法 。
配置一个属于group线程组的新的线程对象,并设线程的名称为name 。
public Thread (ThreadGroup group,Runnabe target,String name)
配置一个新的线程对象 , 调用可执行类对象target中的run ()方法 。
public Thread (ThreadGroup group,Runnabe target)
public Thread (ThreadGroup group,String name)
配置一个新的线程对象,并设线程的名称为name 。
public Thread (Runnable target,String name)
public Thread (Runnable target)
public Thread (String name)
配置一个新的线程对象 。
·
·
·
·
public Thread ()
· ·
· · ·
· ·
·
·
public static in t activeCount () 返回在线程群中活动线程的数量 。
public static native Thread curr 返回目前正在活动的线程 。
public string getName ()
public in t getPriority ()
public void setPriority ()
设置线程执行的优先级值 。
· Thread类的
文档评论(0)