- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Java网络编程原理与JSP Web核心开发技术 第二章 Java的多线程机制 2.1 Java的线程与多线程概述 2.2 Java中线程类、接口和方法及多线程实现 2.3 线程优先级 2.4 线程的生命周期 2.5 线程池 习题 1.什么是多线程?实现多线程有哪两种编程方式? 2.设置Java多线程中优先级的目的是什么?一共有几种优先级设置? 3.实现同步后,有没有产生线程死锁的可能?如果有,举出示例。 4.如果用线程池实现HTTP的服务器应用程序,是不是线程池设置容量越大越好?如果不是,为什么? 5.实验题目:用Java的等待/通知机制实现“厨师—食者”问题。假设分别有6位厨师和6位食者。厨师做一盘菜的时间为4s,食者吃一盘菜的时间为3s。编程实现这一功能,参考“生产者—消费者”问题。 * * 在线教务辅导网: 教材其余课件及动画素材请查阅在线教务辅导网 QQ:349134187 或者直接输入下面地址: 2.1 Java中的线程和多线程概述 进程 (process) 程序的一次执行过程。 包括代码加载、执行,到执行结束的一个完整的动态执行过程。 进程具有一定的生命期,从产生、发展,到死亡的过程。 也包括运行中的程序和程序所使用到的内存、CPU等系统资源。 进程是系统资源分配的基本单位。 一个程序可以对应多个进程(多次执行),但一个进程只能对应一个程序。 2.1 Java中的线程和多线程概述 线程 (thread) 指进程内部一个单一顺序的控制流,也被称为轻量进程,即程序执行流的最小单元。 线程是进程的进一步细分,每个线程都有一个唯一的标识符,并行执行不同的任务。因此,它不能脱离进程来自行运行。 线程有自身的的产生、存在和死亡的过程—生命周期。 在单个进程中可以有一个或多个线程,同时运行多个线程完成不同的工作,称为多线程。 线程是提高代码响应和性能的有力手段。 线程是系统独立调度和分派的基本单位,自己不拥有系统资源。 同一进程中的多个线程共享该进程中的全部系统资源。 相对而言,线程比进程资源开销小,效率高。 2.2 Java中线程类、接口和方法及多线性实现 2.2.1 用Thread类创建多线程 构造函数 public Thread():创建名为 “Thread-”+n的线程对象,其中的 n 为整数。 (2)public Thread(String name):创建名为name的线程。 (3)public Thread(Runnable target):创建名为 “Thread-”+n的线程对象,并以参数target为运行对象。 (4)public Thread(Runnable target,String name):创建名为name的线程,并以参数target为运行对象。 2.2 Java中线程类、接口和方法及多线性实现 常用方法 public void start() public void run() public static void sleep(long millis) throws InterruptedException public static void yield() public void interrupt() public final String getName() public Thread.State getState() public final void join() throws InterruptedException public final int getPriority() public final void setName(String name) public final void setPriority(int newPriority) public final boolean isAlive() 2.2 Java中线程类、接口和方法及多线性实现 用Thread类创建多线程应用程序 对Thread类的继承,重载其run()方法。 示例程序 用Runabble接口创建多线程应用程序 Runnable接口 如果一个类必须继承于其他类(如Applet小应用程序必须继承自Applet类),则无法再继承Thread类,这时就要采用接口Runnable来实现多线程操作。 自定义一个类来实现 Runnable 接口的run()方法。 示例程序。 2.3 线程优先级 2.3.1 分配线程优先级 优先级 当线程产生时,它继承其父线程的优先级。在需要时可对优先级进行修改。在任何时刻,如果有多个线程等待运行,系统选择优先级最高的可运行线程运行。只有当它停止、自动放弃或由于某种原因成为非运行状态,优先级较低的线程才能运行。
您可能关注的文档
- 新Java程序设计 教学课件 彭正文 卢昕 第1章.ppt
- 新Java程序设计 教学课件 彭正文 卢昕 第2章.ppt
- 新Java程序设计 教学课件 彭正文 卢昕 第3章.ppt
- 新Java程序设计 教学课件 彭正文 卢昕 第4章面向对象程序设计基础.ppt
- 新Java程序设计 教学课件 彭正文 卢昕 第5章Java类.ppt
- 新Java程序设计 教学课件 彭正文 卢昕 第6章.ppt
- 新Java程序设计 教学课件 彭正文 卢昕 第7章.ppt
- 新Java程序设计 教学课件 彭正文 卢昕 第8章.ppt
- 新Java程序设计 教学课件 彭正文 卢昕 第9章JDK库的使用.ppt
- 新Java程序设计 教学课件 彭正文 卢昕 第10章 AWT组件.ppt
文档评论(0)