学习情境6-1 Java多线程机制.pptx

  1. 1、本文档共33页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

Java多线程机制;一、应用场景

二、线程和多线程的概念

三、线程的定义、创建和启动

四、线程的生命周期、状态及状态之间的转换

五、线程的优先级设置

;3;多线程的常见应用场景:

(1)后台任务,例如:耗时或大量占用处理器的任务,定时向大量(100w以上)的用户发送邮件;

(2)异步处理,例如:发微博、记录日志等;

(3)并发运行,例如:视频解码,音频解码,网络解码等等;

(4)分布式计算,例如:在两个或多个软件间互相共享信息。;二、线程及多线程的概念;多线程(Multithreading):是指从软件或者硬件上实现多个线程并发执行的技术。

并发(Concurrency):一个进程可以由多个线程组成,即在一个进程中可以同时运行多个不同的线程,他们分别执行不同的任务。当进程内的多个线程同时运行时,这种运行方式被称为并发运行。;三、线程的定义、创建和启动;定义一个继承Thread类的子类,并重写该类的run()方法。;定义Runnable接口的实现类,并重写该接口的run()方法。;线程实现了Runnable接口后还可以继承其他的类。

采用继承Thread类,就不能再继承其他类。因为Java只支持单一继承。;3.2线程的创建;首先创建Runnable实现类的实例,再以此实例作为Thread的构造函数里的target参数来创建Thread对象,该Thread对象才是真正的线程对象。;3.3线程的启动;四、线程的生命周期、状态及状态之间的转换;这是线程的生命周期图;在生命周期中有各种各样的状态,这些状态之间也可以相互转换。;线程的状态;一个线程可以在给定时间点处于一个状态。

同一时刻,线程有且仅有其中的一种状态。

RUNNABLE状态包括了操作系统线程状态中的Running和Ready。

这些状态是不反映任何操作系统线程状态的虚拟机状态。;线程状态间的转换;状态的转换如图1-2所示;用new关键字创建一个线程对象后,该线程对象就处于新生状态(NEW)。;线程通过调用start方法进入可运行状态(RUNNABLE)。

处于可运行状态的线程已经具备了运行条件,但还没有分配到CPU,进入线程就绪队列,等待系统为其分配CPU。;处于可运行状态的线程,如果获得了CPU的调度,就会从可运行状态变为运行状态,执行run()方法中的任??。

处于运行状态的线程最为复杂,它可以变为可运行状态、阻塞状态、等待状态、超时等待状态和终止状态。;阻塞状态是线程等待锁的状态。当线程刚进入可运行状态(注意,还没运行),发现将要调用的资源被synchronized(同步),获取不到锁标记,将会立即进入锁池状态

线程从阻塞状态只能进入就绪状态,无法直接进入运行状态。;等待状态;超时等待状态;终止状态;五、线程的优先级设置;线程优先级的设置;Thread类常用方法;小结;谢谢

文档评论(0)

***** + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档