jave培训:多线程培训资料课件.ppt

  1. 1、本文档共61页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
public class Xyz implements Runnable { private boolean timeToQuit = false; public void run() { while( !timeToQuit ) {…} } public void stopRunning() { timeToQuit = true; } } 3、线程的生命周期及控制 public class ControlThread { private Xyz r = new Xyz(); private Thread t = new Thread(r); public void startThread() { t.start(); } publi void stopThread() { r.stopRunning(); } } 第三十页,共六十一页。 3、线程的生命周期及控制 isAlive()方法:可以用来判断线程目前是否正在执行中。如果线程已被启动并且未被终止,那么isAlive( )返回true,但该线程是可运行或是不可运行的,是不能作进一步的分辨。如果返回false,则该线程是新创建或是已被终止的(同样不能作进一步的分辨)。 join()方法:等待线程执行完毕。 yield()方法:将执行的权力交给其它优先级相同的线程,当前执行线程到可运行线程队列(ready)的最后等待,若队列空,该方法无效。 myThread thd = new MyThread(); thd.start(); … thd.join(); //等待线程thd执行完后再继续往下执行 … join(int time):最多等待time所指定的时间。 第三十一页,共六十一页。 sleep()方法可以暂停线程的执行,让其它线程得到机会。但sleep()要丢出例外InterruptedException ,必须抓住。 try { sleep(100) }catch(InterruptedException e){ …//本例外可不作处理 } suspend()方法和resume()可以用来暂停线程或恢复线程。可以由线程自身在线程体中调用suspend()方法暂停自己,也可以在其他线程中通过线程实例调用suspend()方法暂停线程的执行。但是要恢复由suspend()方法暂停的线程,只能在其他线程中通过线程实例调用resume()方法。 3、线程的生命周期及控制 第三十二页,共六十一页。 Java提供一个线程调度器来监控程序中启动后进入可运行状态的所有线程。线程调度器按照线程的优先级决定调度哪些线程来执行,具有高优先级的线程会在较低优先级的线程之前得到执行。同时线程的调度是抢先式的,即如果当前线程在执行过程中,一个具有更高优先级的线程进入可执行状态,则该告优先级的线程会被立即调度执行。 多个线程运行时,若线程的优先级相同,由操作系统按时间片轮转方式或独占方式来分配线程的执行时间。 4、线程的优先级及调度 第三十三页,共六十一页。 在Java中线程的优先级是用数字来表示的,分为三个级别: 低优先级:Thread.MIN_PRIORITY,数值为1 (2~4) 缺省优先级: Thread. NORM_PRIORITY,数值为5 高优先级:Thread.MAX_PRIORITY,数值为10 (6~9) 具有相同优先级的多个线程,若它们都为高优先级Thread.MAX_PRIORITY,则每个线程都是独占式的,也就是说这些线程将被顺序执行;若该优先级不为高优先级,则这些线程将同时执行,也就是说这些线程的执行是无序的。 线程被创建后,其缺省的优先级是缺省优先级Thread. NORM_PRIORITY。可以用方法 int getPriority()来获得线程的优先级,同时也可以用方法 void setPriority( int p ) 在线程被创建后改变线程的优先级。 4、线程的优先级及调度 第三十四页,共六十一页。 4、线程的优先级及调度 线程离开执行状态, 如果: 线程结束 线程处于I/O等待 线程调用sleep 线程调用wait 线程调用join 线程调用yield 有更高优先级的线程 时间片用完 Priority 10 Priority 9 Priority 8 Priority 7 Priority 6 Priority 5 Priority

文档评论(0)

虾虾教育 + 关注
官方认证
内容提供者

有问题请私信!谢谢啦 资料均为网络收集与整理,收费仅为整理费用,如有侵权,请私信,立马删除

版权声明书
用户编号:8012026075000021
认证主体重庆皮皮猪科技有限公司
IP属地重庆
统一社会信用代码/组织机构代码
91500113MA61PRPQ02

1亿VIP精品文档

相关文档