- 1、本文档共19页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Eclipse 客户端程序中多线程的使用
Eclipse 作为一个开发平台,使用越
来越广泛,基于 Eclipse Rich Client
Platform 开发的客户端程序也越来越多。在当今越来越复杂 的应用环境中,我们的客户端程序不可避免的要同时进行多 任务的处理。一个优异的客户端程序 都会允许用户同时启动多个任务,从而大大提高用户的工作
中实现多任效率以及用户体验。本文中我们来谈谈 Eclipse
中实现多任
务的方式。在我们基于
Eclipse 的 Java 程序中, 我们有很多种方式提供多任务的实 现。熟悉 Java 的朋友立即会想到 Java 的 Thread 类,这是
Java 中使用最多的
中的 Job 是对 Java个实现多任务的类。 Eclipse 平台为多任务处理提供了自 己的API,那就是
中的 Job 是对 Java
Thread 的一个封装, 为我们实现多任务提供了更方便的接口。
以下是 Job 的基本用法:清单 1. Job 用法示例 Job job = new
Job( “Job Name”){ protected IStatus run(IProgressMonitor monitor) {
// 在这里添加你的任务代码
return Status.OK_STATUS;
空闲线程,线程池会创建一个新的线程来运行 Job
空闲线程,线程池会创建一个新的线程来运行 Job 。一旦 Job
运行完毕,运行 Job 的线程会返回到线程池中以备下次使用。
空闲线程,线程池会创建一个新的线程来运行 Job
空闲线程,线程池会创建一个新的线程来运行 Job 。一旦 Job
运行完毕,运行 Job 的线程会返回到线程池中以备下次使用。
停、继续指定的
停、继续指定的 Job 使
};
中我们也会经常用到job.schedule(delayTime); 在 Eclipse
中我们也会经常用到
Display.asynchExec()
和 Display.synchExec() 来启动任务的执行。 这两个方法主要 为了方便我们完成界面操作的任务。以下是
Display.asynchExec() 的用法, Display.synchExec() 和它类 似。清单 2. Display.synchExec() 用法示例
Display.getDefault().asyncExec(new Runnable() { public void run() {
// 在这里添加你的任务代码
}); 通常,在
}); 通常,在 Eclipse
中我们最好使用 Eclipse 提供的 Job
个 Job接口来实现多任务, 而不是使用 Java 的 thread 。为什么呢? 主要有以下几个原因: Job 是可重用的工作单元, 我们可以很方便的让它多次执行。 Job 提供了方便的接口, 使得我们在处理中能够很方便的与外界交流,报告当前的执 行进度 Eclipse 提供了相应的机制使得程序员可以方便的介 入 Job 的调度, 例如我们可以方便的实现每次只有一个同 类型的 Job 在运行 Eclipse 缺省提供了 Job 管理的程序,可 以查看当前所有的 Job 和它们的进度,也提供 UI 终止、暂用 Job
个 Job
Eclipse中的 Job 封装了线程池的实现。 当我们启动一个 Job
Eclipse
时, Eclipse 不会马上
新建一个 Thread ,它会在它的线程池中寻找是否有空闲的线
程,如果有空闲线程,就会直接用空闲线程运行你的Job
程,如果有空闲线程,就会直接用空闲线程运行你的
Job 。
个 Job 终止时,它所对应的线程 也不会立即终止,它会被返回到线程池中以备重复利用。这
样,我们可以节省创建和销毁线程的开销下面我们从几个方
面来讨论 Eclipse
面来讨论 Eclipse 中
Job 的实现和使用方面的问题。 Eclipse
中 Job 的实现 Eclipse
的核心包中提供了一个 JobManager 类,它实现了
IJobManager接口, Eclipse中 Job
IJobManager
接口, Eclipse
中 Job 的管理和调度都是由
JobManager
来实
现的。
JobManager维护有一个线程池,用来运行
JobManager
维护有一个线程池,用来运行 Job 。当我们调
用 Job 的 schedule 方法后,这个 Job 会被 JobManager 首 先放到一个
Job 运行的等待队列中去。之后, JobManager 会通知线程 池有新的 Job 加入了运行等待队列。 线程池会找出一个空闲 的线程来运行 Job ,如果没有
调用
调用
您可能关注的文档
- CT3200变压器损耗参数测试仪说明书ABS201300904要点.docx
- CT保养流程总结.docx
- c写word文档基础操作-jy_0219的专栏-csdn博客.docx
- C市羊肉汤里添加罂粟壳事件负外部性分析.docx
- C语言30道例题东大期末考试+答案要点.docx
- C语言在现代计算机教学中的地位及发展趋势-教育文档.docx
- C语言教学方法研究-教育文档.docx
- DA与AD转换器你要知道的都在这里了.docx
- DDoS攻击原理及抗DDoS设备的应用.docx
- Delphi中判断当前程序运行过程中长时间无鼠标与键盘操作.docx
- 2025年AI大模型技术在电力系统中的应用及发展趋势报告-香港中文大学(赵俊华).docx
- 2025年温室气体核查指南-企业可持续发展的绿色基石-ICAS英格尔认证.docx
- 数字员工助力财务管理数字化转型.docx
- DeepSeek完全实用手册(1.5版本).pdf.docx
- 2025年一季度中国消费者消费意愿调查报告-立信数据-202506.docx
- 突发环境污染事件应急管理培训.docx
- 金融-银行行业专题:中国机构配置手册(2025版)之流动性与货币政策篇-“超级央行”时代.docx
- 陈立桅-高比能长循环全固态电池关键材料.docx
- 投资策略专题:从“第四消费时代”看未来消费机遇.docx
- 华为产品战略规划全景训战.docx
最近下载
- 上海市既有建筑改造工程消防技术指南(2024年版).docx VIP
- 网易云音乐UI界面设计案例分析.pptx VIP
- 20220103云南师范大学附属俊发城中学劳动教育评价工作方案.docx
- 2024秋新人教版物理八年级上册教学课件 开学第一课 开启科学探索之旅.pptx VIP
- 不动产登记代理人《地籍调查》近年考试真题题库汇总(200题).docx VIP
- 三面自动切书机设计.doc VIP
- 《世界现代设计史题库》.doc VIP
- 今日头条2013年B轮融资商业计划书.pdf VIP
- 《汽车涂装》2024—2025学年第一学期工学一体化课程教学进度计划表.docx VIP
- 2024年中国产业出海发展研究报告.pdf VIP
文档评论(0)