Eclipse客户端程序中多线程的使用.docx

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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 ,如果没有 调用 调用

文档评论(0)

wangyueyue + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档