下载此文档

线程JAVA教程学习教案.ppt


文档分类:IT计算机 | 页数:约45页 举报非法文档有奖
1/45
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/45 下载此文档
文档列表 文档介绍
会计学
*
线程JAVA教程(jiàochéng)
第一页,共45页。
线程的概念(gàiniàn)
程序、进程、线程
程序:(Program)是一段静态的代码,它是应用软件执行的蓝本。
进程(Process)是程序的一次执行过程,是系统运行程序的基本单位(dānwèi)。
线程(Thread) 是比进程更小的执行单位(dānwèi)。相当于一个任务中的一条执行路径。
第1页/共44页
第二页,共45页。
线程的概念(gàiniàn)
进程与线程
每个进程都有一段专用的内存区域
线程可共享相同的内存单元(包括(bāokuò)代码和数据)
多进程:在操作系统中能同时运行多个任务(程序);
多线程:在同一个应用程序中有多个顺序流同时执行
多线程的目的是为了最大限度的利用CPU资源。
第2页/共44页
第三页,共45页。
Java的线程
Java应用程序总是从主类的main方法开始执行。当JVM加载代码,发现main方法之后,就会启动一个(yī ɡè)线程,这个线程称作“主线程”,该线程负责执行main方法。那么,在main方法中再创建的线程,就称为主线程中的线程。
每个线程都是通过某个特定Thread对象所对应的方法run()来完成其操作的,方法run()称为线程体,通过调用Thread类的start()方法来启动一个(yī ɡè)线程。
第3页/共44页
第四页,共45页。
Java的线程
JVM在主线程和其他线程之间轮流切换,保证每个线程都有机会使用CPU资源,main方法即使执行完最后的语句,JVM也不会(bù huì)结束我们的程序,JVM一直要等到主线程中的所有线程都结束之后,才结束我们的Java应用程序。
第4页/共44页
第五页,共45页。
线程的生命周期
新建线程在它的一个完整的生命周期内通常要经历四种状态。通过线程的控制与调度可使线程在这几种(jǐ zhǒnɡ)状态间转化:
新建状态
运行状态
中断状态
死亡状态
第5页/共44页
第六页,共45页。
线程的状态(zhuàngtài)与生命周期
新建状态
Newborn
就绪状态
Runnable
运行状态
Running
消亡状态
Dead
其它阻塞
Blocked
start()
线程的生命周期与线程的状态
sleep时间到
interrupt()
run()结束
调度
时间片到
yield()
互斥阻塞
Blocked
等待阻塞
Blocked
获得互斥
使用权
sleep()
join()
synchronized()
notify()
wait()
Interrupt()
例8-1
例8-2
第6页/共44页
第七页,共45页。
线程的优先级及调度(diàodù)管理
优先级:在多线程系统中,每个线程都被赋予一个执行优先级。优先级决定了线程被CPU执行的优先顺序。
线程的优先级设置遵从(zūncóng)以下原则
线程创建时,子进程继承父进程的优先级
线程创建后,可通过调用setPriority()方法改变优先级。
Java线程的优先级:取值范围是1~10
static int MAX_PRIORITY
static int MIN_PRIORITY
static int NORM_PRIORITY
第7页/共44页
第八页,共45页。
线程的优先级及调度(diàodù)管理
线程的调度策略
线程调度器选择优先级最高的线程运行。但是,如果发生(fāshēng)以下情况,就会终止线程的运行。
线程体中调用了yield()方法,让出了对CPU的占用权
线程体中调用了sleep()方法, 使线程进入睡眠状态
线程由于I/O操作而受阻塞
另一个更高优先级的线程出现。
在支持时间片的系统中,该线程的时间片用完。
第8页/共44页
第九页,共45页。
线程的创建(chuàngjiàn)和启动
Java中实现多线程的方法(fāngfǎ)有两种,,二是用户在定义自己的类中实现Runnable接口。
第9页/共44页
第十页,共45页。

线程JAVA教程学习教案 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数45
  • 收藏数0 收藏
  • 顶次数0
  • 上传人wz_198613
  • 文件大小742 KB
  • 时间2021-12-30
最近更新