021 多线程.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
021 多线程

深入Java编程 专业教程 概述: * 理论讲解部分 Ver3.1 第021课 多线程 线程的用途 线程的状态 线程的实现 重点: 难点: 线程的状态 线程的实现 第021课 多线程 对象技术使你得以把程序划分成若干独立的部分.通常,你还需要把程序转换成彼此分离的,能独立运行的子任务. 每一个这些独立的子任务被称为一个 “线程”(thread).你要这样去编写程序 每个线程都好像是在独自运行并且占有自己的处理器.处理器时间确实是通过某些底层机制进行分配的. 第021课 多线程 “多任务”(multitasking)操作系统通过周期性的将处理器切换到不同的任务,使其能够同时运行不止一个进程(程序),每个进程都将是连续运行的.线程是进程内部的单一控制序列流.因此一个进程内可以具有多个并发执行的线程. 所谓 “进程”(process),是一个独立运行着的程序,他有自己的地址空间. 第021课 多线程 多线程有多种用途,通常的用法是,防止阻塞对程序流程的影响. 在有阻塞的情况下,使用一个独立的线程去作可能产生阻塞的操作,从而使该阻塞不会影响到其它任务的继续 第021课 多线程 学习并发编程就像进入了一个全新的领域, 总的来说,线程编程: 不仅看起来神秘,而且需要你改变编程时的思维方式. 各种语言中对线程的支持都很相似,所以要理解了线程的概念,那么在别的语言中要用到线程的话就有了共同语言. 第021课 多线程 1 使用多线程的原因 使用并发最强制性的原因之一就是要产生能够作出响应的用户界面. 考虑一个程序,它要执行某项cpu占用的计算,这样就会导致用户的输入被忽略,也就无法作出响应. 问题的实质使:程序需要一边连续进行计算,同时还要把控制权交给用户界面,这样程序才能响应用户的操作. 第021课 多线程 传统方法不可能一边连续执行其操作,同时又把控制权交给程序的其余部分.事实上,这听起来就像是不可能完成的任务,就好像让一个处理器同时出现在两个地方,但这恰恰是并发编程所能够提供的错觉效果. 多线程还可以用来优化程序的吞吐量. 比如在你等待数据到达输入/输出端口的时候,你可以进行其它的重要的工作.要是不用线程的话,唯一可行的办法就是不断查询输入/输出端口,这种办法不仅笨拙,而且很困难. 1 使用多线程的原因 第021课 多线程 在多cpu web服务其上会使用多线程技术. 在单cpu上,多线程可以使程序的组织更有条理. 在单cpu的机器上,线程会降低一些运行效率,但是,从程序设计 资源平衡 用户使用等方面看,还是非常值得的. 1 使用多线程的原因 2 线程的状态 第021课 多线程 线程有4种状态: 1.新建状态(New) 线程对象已经创建完毕,但尚未启动(start),因此还不能运行。 2.可运行状态(Runnable) 处在这种状态下的线程,只要分时机制分配给它CPU周期,它就能运行。也就是说,具体到某个时点,它可能正在运行,也可能没有运行,但是轮到它运行的时候,谁都不能阻止它;它没有dead,也没有被阻塞。 第021课 多线程 3.死亡状态(Dead) 要想中止线程,正常的做法是退出run( )。 4.阻塞状态(Blocked ) 就线程本身而言,它是可以运行的,但是有什么别的原因在阻止它运行。不会被放入cpu中运行,除非它重新进入runnable状态,否则什么都干不了。 2 线程的状态 第021课 多线程 3 线程的使用 实现线程最简单的方法是从java.lang.Thread继承,这个类已经具有了创建和运行线程所必要的架构. public class MyThread extends Thread{ public run(){} } 第021课 多线程 在继承Thread的时候,需要复写run()函数. run()函数中描述了当线程运行的时候所做的工作. 当这个类实例化后,一个线程就被创建了.但是该线程并没有运行.处于阻塞状态 直到该线程的start()函数被调用,该线程才被运行. 3 线程的使用 第021课 多线程 下面是一个例子: public class SimpleThread extends Thread{ private int countDown =5; private static int threadCount =0; public SimpleThread(){ super(+ ++threadCount); start(); } public String toString(){ reurn

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档