知识大全 Eclipse客户端程序中多线程的使用[5]

Posted

篇首语:学如逆水行舟,不进则退。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Eclipse客户端程序中多线程的使用[5]相关的知识,希望对你有一定的参考价值。

Eclipse客户端程序中多线程的使用[5]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  针对相关联的Job统一进行处理 有时 我们需要对相关联的Job一起处理 例如需要同时取消这些Job 或者等待所有这些Job结束 这时我们可以使用Job Family 对于相关联的Job 我们可以将它们设置成同一个Job Family 我们需要重载Job的belongsTo方法以设置一个Job的Job Family

Private Object MY_JOB_FAMILY = new Object();Job job = new Job( Job Name )protected IStatus run(IProgressMonitor monitor)  // 在这里添加你的任务代码  return Status OK_STATUS;   public boolean belongsTo(Object family)  return MY_JOB_FAMILY equals(family); ;

  我们可以使用JobManager的一系列方法针对Job Family进行操作

Job getJobManager() cancel(MY_JOB_FAMILY); //取消所有属于MY_JOB_FAMILY的所有JobJob getJobManager() join(MY_JOB_FAMILY); //等待属于MY_JOB_FAMILY的所有Job结束Job getJobManager() sleep(MY_JOB_FAMILY); //将所有属于MY_JOB_FAMILY的Job转入睡眠状态Job getJobManager() wakeup(MY_JOB_FAMILY); //将所有属于MY_JOB_FAMILY的Job唤醒

  线程死锁的调试和解决技巧

  一旦我们使用了线程 我们的程序中就有可能有死锁的发生 一旦发生死锁 我们发生死锁的线程会没有响应 导致我们程序性能下降 如果我们的UI线程发生了死锁 我们的程序会没有响应 必须要重启程序 所以在我们多线程程序开发中 发现死锁的情况 解决死锁问题对提高我们程序的稳定性和性能极为重要

  如果我们发现程序运行异常(例如程序没有响应) 我们首先要确定是否发生了死锁 通过下面这些步骤 我们可以确定是否死锁以及死锁的线程

  在Eclipse中以Debug模式运行程序 执行响应的测试用例重现问题 在Eclipse的Debug View中选中主线程(Thread[main]) 选择菜单Run >Suspend 这时Eclipse会展开主线程的函数调用栈 我们就可以看到当前主线程正在执行的操作 通常 Eclipse在等待用户的操作 它的函数调用栈会和以下类似

图片示例

  如果主线程发生死锁 函数调用栈的最上层一般会是你自己的函数调用 你可以查看一下你当前的函数调用以确定主线程在等待什么 使用同样的方法查看其他线程 特别是那些等待UI线程的线程 我们需要找出当前线程相互的等待关系 以便找出死锁的原因 我们找出死锁的线程后就可以针对不同情况进行处理

  减小锁的粒度 增加并发性 调整资源请求的次序 将需要等待资源的任务放到独立的线程中执行

cha138/Article/program/Java/gj/201311/27701

相关参考

知识大全 Eclipse客户端程序中多线程的使用[1]

Eclipse客户端程序中多线程的使用[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  本文

知识大全 Eclipse客户端程序中多线程的使用[4]

Eclipse客户端程序中多线程的使用[4]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  延时

知识大全 Eclipse客户端程序中多线程的使用[3]

Eclipse客户端程序中多线程的使用[3]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  这样

知识大全 Eclipse客户端程序中多线程的使用[6]

Eclipse客户端程序中多线程的使用[6]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Jo

知识大全 Eclipse客户端程序中多线程的使用[2]

Eclipse客户端程序中多线程的使用[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Ec

知识大全 关于Eclipse中UI程序的线程的讨论

关于Eclipse中UI程序的线程的讨论  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!虽然各个操作

知识大全 Java开发中多线程同步技巧[3]

Java开发中多线程同步技巧[3]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &nb

知识大全 Java开发中多线程同步技巧[2]

Java开发中多线程同步技巧[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &nb

知识大全 Java开发中多线程同步技巧[1]

Java开发中多线程同步技巧[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &nb

知识大全 Eclipse + JBoss 5 + EJB3

Eclipse+JBoss5+EJB3  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  有时客户端