收藏 分销(赏)

第15章-实现多线程.ppt

上传人:精**** 文档编号:7521546 上传时间:2025-01-07 格式:PPT 页数:14 大小:121KB
下载 相关 举报
第15章-实现多线程.ppt_第1页
第1页 / 共14页
第15章-实现多线程.ppt_第2页
第2页 / 共14页
第15章-实现多线程.ppt_第3页
第3页 / 共14页
第15章-实现多线程.ppt_第4页
第4页 / 共14页
第15章-实现多线程.ppt_第5页
第5页 / 共14页
点击查看更多>>
资源描述

1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,Java,程序设计基础,-,国家级十二五规划教材,-,大连理工大学出版社,第,15,章 实现多线程,主讲:胡伏湘,复习提问,1,、流有什么作用,说出,4,个流的类名。,2,、文件的处理是通过什么流实现的?,3,、,File,类与,FileInputStream,类有什么不同?,本章提要,主要知识点:,线程的概念;,线程的优先级与生命周期;,线程的创建方法;,线程的同步处理,学习目标:理解线程与多线程的意义,掌握线程的创建和用法,能够运用线程处理机制解决程序的同步问题。,15.1,认识多线程,线程,Thread,

2、本来是操作系统中的概念,由进程,process,引伸而来。,一个标准的线程由线程,ID,、当前指令指针、寄存器集合和堆栈组成,线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。,15.1,认识多线程,15.1.1,多线程的意义,线程是比进程更小的执行单位,一个进程在执行过程中可以产生多个线程,每个线程也有自己的产生、存在和消亡过程,也是一个动态的概念,同一进程的多个线程共享一块内存空间和一组系统资源,有可能相互影响。,15.1,认识多线程,15.1.2,线程的优先级与分类,

3、每一个线程都会分配一个优先级,优先级越高,系统优先调度执行。,Java,将线程的优先级分为,10,个等级,用数字,110,表示,数字越大优先级越高,默认的优先级是居中,即为,5,。,Thread,类定义了,3,个线程优先级常量:,MIN_PRIORITY /,最小优先级,用,1,表示,MAX_PRIORITY /,最大优先级,用,10,表示,NORMAL_PRIORITY /,普通优先级,用,5,表示,15.1,认识多线程,15.1.3,线程的生命周期,Java,程序使用,Thread,类及其子类的对象表示线程,新建的线程在它完整的生命周期中,包括新建、就绪、运行、阻塞和死亡,5,种状态。,1

4、5.2,创建多线程,15.2.1 Thread,线程类,1、构造方法,Thread,类的构造方法很多,主要包括:,n,Thread();,n,Thread(Runnable,target);,Thread(Runnable,target,String,name);,Thread(String,name);,15.2,创建多线程,15.2.1 Thread,线程类,2、主要方法,n,int,activeCount,()/,返回当前活动线程数,n,Thread,currentThread,()/,返回当前运行的线程,n,String,getName,()/,返回线程的名字,destroy()/,破

5、坏线程,但不进行清理,int,getPriority,()/,返回线程的优先级,ThreadGroup,get,ThreadGroup,()/,返回线程组名,15.2,创建多线程,15.2.2,线程的创建,1、继承,Thread,类创建线程,从,Thread,类派生一个类,并覆盖,Thread,类中的,run,方法。,一般包括三步:,从,Thread,类派生一个类,并覆盖,Thread,类中的,run,方法,创建该子类的对象,调用,start,方法启动本线程,例,15-1,:线程的使用,15.2,创建多线程,15.2.2,线程的创建,2、实现,Runnable,接口,接口类,Runnable,

6、只有一个方法,run(),,本方法传递了一个实现,Runnable,接口的类对象,这样创建的线程调用了那个实现,Runnable,接口的类对象中的,run(),方法作为其运行代码,而不再调用,Thread,类的,run(),方法。,方法,run(),由系统自动调度,即通过,start(),方法,而不能由程序调用,例,16-3,:利用实现,Runnable,接口的方法建立线程,15.3,同步多线程,15.3.1 synchronized,同步方法,通过在方法声明中加入,synchronized,关键字可以声明同步方法。如:,public synchronized void,fetchMoney,

7、(),synchronized(this,),例,15-4,:多个窗口联网卖车票的问题,假设车票共,100,张,编写从,100,号开始逐渐减少,直到票号为,0,,表示所有票已经全部卖完。票号是根据卖出情况自动编写并当场打印的,就是说卖票过程包括卖票和车票号递减两步。,15.3,同步多线程,15.3.2 synchronized,同步代码块,synchronized,方法虽然可以解决同步问题,但也存在缺陷,如果一个,synchronized,方法需要执行较长的时间,将影响系统效率。,Java,提供了一种解决办法,就是,synchronized,同步代码块,通过,synchronized,关键字将一个程序块声明为同步代码块,而不是将整个方法声明为同步方法。,synchronized,同步代码块的声明格式是:,synchronized(syncObject,),/,允许访问控制的代码,例,15-6,:将例,15-5,程序的功能用同步代码块的方法实现,本章结束,主要内容:,线程的概念,线程类,创建多线程,同步多线程,

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服