第13讲:多线程

上传人:aa****6 文档编号:52435695 上传时间:2018-08-21 格式:PPT 页数:20 大小:359KB
返回 下载 相关 举报
第13讲:多线程_第1页
第1页 / 共20页
第13讲:多线程_第2页
第2页 / 共20页
第13讲:多线程_第3页
第3页 / 共20页
第13讲:多线程_第4页
第4页 / 共20页
第13讲:多线程_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《第13讲:多线程》由会员分享,可在线阅读,更多相关《第13讲:多线程(20页珍藏版)》请在金锄头文库上搜索。

1、六年级数学上册课件-比的基本性质和化简比江苏省连云港市田家炳中学高一生物现代生物进化理论的主要内容课件八一建军节主题教育活动PPT模板军队国防改革强军梦学习多线程2009年11月9日计算机与信息工程系 JAVA程序设计六年级数学上册课件-比的基本性质和化简比江苏省连云港市田家炳中学高一生物现代生物进化理论的主要内容课件八一建军节主题教育活动PPT模板军队国防改革强军梦学习 目录1234进程和线程的基本概念线程的生命周期及状态控制多线程的创建方法线程之间的同步六年级数学上册课件-比的基本性质和化简比江苏省连云港市田家炳中学高一生物现代生物进化理论的主要内容课件八一建军节主题教育活动PPT模板军队

2、国防改革强军梦学习进程:一个执行的程序,系统允许多个程序同 时存在并执行,多任务操作系统。 进程的切换需要占用大量的系统资源 线程: 一个程序中实现单一功能的一个指令序列 ,一个程序中可以包含若干个线程。或者 简单说,线程是轻量级的进程基本概念六年级数学上册课件-比的基本性质和化简比江苏省连云港市田家炳中学高一生物现代生物进化理论的主要内容课件八一建军节主题教育活动PPT模板军队国防改革强军梦学习 进程存在一些问题。例如,如果一个程序要 同时完成多项任务,如果把这些任务都设计 成一个个进程,当系统频繁地进行进程切换 (术语称为进程调度)时,就要占用大量的 系统资源(主要是CPU时间)。 线程是

3、解决这类问题的一个途径六年级数学上册课件-比的基本性质和化简比江苏省连云港市田家炳中学高一生物现代生物进化理论的主要内容课件八一建军节主题教育活动PPT模板军队国防改革强军梦学习多线程是指一个进程中同时运行的多个完成不 同子任务的线程。多线程不仅可以使一个程 序同时完成多项任务,而且为此消耗的系统 资源也比进程方法少许多 特点是在一个程序中,所有的线程占用的资源 是同一个。六年级数学上册课件-比的基本性质和化简比江苏省连云港市田家炳中学高一生物现代生物进化理论的主要内容课件八一建军节主题教育活动PPT模板军队国防改革强军梦学习 线程的创建方法(一)1、第一种方法: 实现Runnable接口 覆

4、盖run()方法 实现Runnable的对象 Thread t=new Thread(对象名) 通过线程名.start()方法启动六年级数学上册课件-比的基本性质和化简比江苏省连云港市田家炳中学高一生物现代生物进化理论的主要内容课件八一建军节主题教育活动PPT模板军队国防改革强军梦学习 创建线程的方法(二)2、第二种方法 继承Thread类 重载run方法 通过线程名.start()方法启动 思考:两种方法有什么区别吗?六年级数学上册课件-比的基本性质和化简比江苏省连云港市田家炳中学高一生物现代生物进化理论的主要内容课件八一建军节主题教育活动PPT模板军队国防改革强军梦学习前者是为程序创建固定

5、的线程数,代价高,执 行时间短 后者与之相反,从程序开发的角度来说,后者 是最佳选择方案线程执行器(另外一种创建线程的方法 )六年级数学上册课件-比的基本性质和化简比江苏省连云港市田家炳中学高一生物现代生物进化理论的主要内容课件八一建军节主题教育活动PPT模板军队国防改革强军梦学习线程的生命周期是指一个线程从产生到消亡 的发展过程。在这个过程中,每一个时刻都 是线程生命周期的一个阶段。 我们把线程生命周期的不同阶段称作线程的 不同状态 线程的生命周期和状态六年级数学上册课件-比的基本性质和化简比江苏省连云港市田家炳中学高一生物现代生物进化理论的主要内容课件八一建军节主题教育活动PPT模板军队国

6、防改革强军梦学习创建可运行不可运行运行中死亡start( )运行结束sleep()、wait() 等各种阻塞情况notify()、sleep()时间 到等阻塞情况解除yield()等 调度时间到线程的生命周期六年级数学上册课件-比的基本性质和化简比江苏省连云港市田家炳中学高一生物现代生物进化理论的主要内容课件八一建军节主题教育活动PPT模板军队国防改革强军梦学习yield():表示该线程放弃Running状态,转成 Runnable状态。即只能线程本身执行 sleep():是一个静态方法,不属于哪个对象,只 是哪个线程执行到Thread.sleep()语句,哪个线 程sleep Join()方

7、法是等待线程结束,如main()线程中执 行T1.join(),则main()线程执行到这条语句是暂 停,等待T1线程执行结束后才继续执行。 线程状态解释六年级数学上册课件-比的基本性质和化简比江苏省连云港市田家炳中学高一生物现代生物进化理论的主要内容课件八一建军节主题教育活动PPT模板军队国防改革强军梦学习线程的优先级将该线程的重要性传递给调度器 CUP处理现有线程集存在不确定性 调度器倾向于优先级高的线程 线程都应该以默认的优先级存在,操纵优先级 是一种错误的做法 优先级的设置应放在run()方法之前线程的优先级六年级数学上册课件-比的基本性质和化简比江苏省连云港市田家炳中学高一生物现代生

8、物进化理论的主要内容课件八一建军节主题教育活动PPT模板军队国防改革强军梦学习 线程的常用方法getId( ) 返回该线程的标识符。getName( )返回该线程的名称 getPriority( ) 返回线程的优先级。isAlive( ) 测试线程是否处于活动状态。 setPriority(int newPriority)更改线程的 优先级。 六年级数学上册课件-比的基本性质和化简比江苏省连云港市田家炳中学高一生物现代生物进化理论的主要内容课件八一建军节主题教育活动PPT模板军队国防改革强军梦学习综合练习:完成银行取款功能1、银行账户管理类实现银行取款和余额查询功能2、顾客取款类实现顾客取款信

9、息输出功能。3、测试类定义顾客信息,控制取款、输出余额线程的同步六年级数学上册课件-比的基本性质和化简比江苏省连云港市田家炳中学高一生物现代生物进化理论的主要内容课件八一建军节主题教育活动PPT模板军队国防改革强军梦学习结果不正确原因分析当某一客户取款后,银行还没有来得及更新 余额信息,另一顾客也在取款。导致数据更 新错误。解决方法:采用多线程的同步机制,某一时 刻只允许一个线程访问共享资源。六年级数学上册课件-比的基本性质和化简比江苏省连云港市田家炳中学高一生物现代生物进化理论的主要内容课件八一建军节主题教育活动PPT模板军队国防改革强军梦学习同步(Synchronized)的定义:是指将被

10、当 前线程访问的对象或方法加锁(独占资源) ,其他想访问此资源的线程只能等待,等原 先线程访问结束后才能访问。从本案例分析:当顾客甲取款时,顾客乙只 能等待,当顾客甲取款成功并更新余额后才 能取款。六年级数学上册课件-比的基本性质和化简比江苏省连云港市田家炳中学高一生物现代生物进化理论的主要内容课件八一建军节主题教育活动PPT模板军队国防改革强军梦学习run()被加上了synchronized 关键字,不一定 是共享资源的访问,关键是看线程对象的定 义方法。例如:ThreadTest.java此案例表示t1和t2不是共享同一个run方法六年级数学上册课件-比的基本性质和化简比江苏省连云港市田家

11、炳中学高一生物现代生物进化理论的主要内容课件八一建军节主题教育活动PPT模板军队国防改革强军梦学习wait(),notify这些方法由java.lang.Object 类提供 ,而上面讲到的方法都是由java.lang.Thread 类 提供 wait(),notify方法用于协调多个线程对共享数据 的存取,所以必须在synchronized 语句块内使 用这三个方法。具体用法参照TestThread.java六年级数学上册课件-比的基本性质和化简比江苏省连云港市田家炳中学高一生物现代生物进化理论的主要内容课件八一建军节主题教育活动PPT模板军队国防改革强军梦学习t1线程最先执行。 由于初始状

12、态下shareVar 为0,t1 将使shareVar 连续加1, 当shareVar 的值为5 时,t1 调用wait()方法,t1 将处于休息状态,同时释放锁标志。 这时t2 得到了锁标志开始执行,shareVar 的值已 经变为5,所以t2 直接输出shareVar 的值。 然后再调用notify() 方法唤醒t1。 t1 接着上次休息前的进度继续执行,把shareVar 的值一直加到10,六年级数学上册课件-比的基本性质和化简比江苏省连云港市田家炳中学高一生物现代生物进化理论的主要内容课件八一建军节主题教育活动PPT模板军队国防改革强军梦学习 课后作业与小结 理解线程和进程的基本概念 掌握线程的2中创建方法 掌握并理解线程的生命周期(状态) 理解wait( )和notify( ) 掌握多线程的同步应用方法

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号