eclipse客户端程序中多线程的使用

eclipse客户端程序中多线程的使用

ID:18467411

大小:64.50 KB

页数:15页

时间:2018-09-18

eclipse客户端程序中多线程的使用_第1页
eclipse客户端程序中多线程的使用_第2页
eclipse客户端程序中多线程的使用_第3页
eclipse客户端程序中多线程的使用_第4页
eclipse客户端程序中多线程的使用_第5页
资源描述:

《eclipse客户端程序中多线程的使用》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Eclipse客户端程序中多线程的使用本文分析了Eclipse中多线程程序的实现,讨论了在Eclipse客户端程序开发中应用多线程的方法和要注意的问题,同时也讨论了多线程程序的一些调试和问题解决的方法。  Eclipse作为一个开发平台,使用越来越广泛,基于EclipseRichClientPlatform开发的客户端程序也越来越多。在当今越来越复杂的应用环境中,我们的客户端程序不可避免的要同时进行多任务的处理。一个优异的客户端程序都会允许用户同时启动多个任务,从而大大提高用户的工作效率以及用户体验。本文中我们来谈谈Eclipse中实现多任务的方式。  在我们

2、基于Eclipse的Java程序中,我们有很多种方式提供多任务的实现。熟悉Java的朋友立即会想到Java的Thread类,这是Java中使用最多的一个实现多任务的类。Eclipse平台为多任务处理提供了自己的API,那就是Job以及UIJob。Eclipse中的Job是对JavaThread的一个封装,为我们实现多任务提供了更方便的接口。以下是Job的基本用法:  清单1.Job用法示例               Jobjob=newJob(“JobName”){protectedIStatusrun(IProgressMonitormonitor){  

3、    //在这里添加你的任务代码  returnStatus.OK_STATUS; }};job.schedule(delayTime);  在Eclipse中我们也会经常用到Display.asynchExec()和Display.synchExec()来启动任务的执行。这两个方法主要为了方便我们完成界面操作的任务。以下是Display.asynchExec()的用法,Display.synchExec()和它类似。  清单2.Display.synchExec()用法示例Display.getDefault().asyncExec(newRunnable

4、(){publicvoidrun(){ //在这里添加你的任务代码  } });  通常,在Eclipse中我们最好使用Eclipse提供的Job接口来实现多任务,而不是使用Java的thread。为什么呢?主要有以下几个原因:  Job是可重用的工作单元,一个Job我们可以很方便的让它多次执行。Job提供了方便的接口,使得我们在处理中能够很方便的与外界交流,报告当前的执行进度Eclipse提供了相应的机制使得程序员可以方便的介入Job的调度,例如我们可以方便的实现每次只有一个同一类型的Job在运行Eclipse缺省提供了Job管理的程序,可以查看当前所有的J

5、ob和它们的进度,也提供UI终止、暂停、继续指定的Job使用Job可以提高程序的性能,节省线程创建和销毁的开销。Eclipse中的Job封装了线程池的实现。当我们启动一个Job时,Eclipse不会马上新建一个Thread,它会在它的线程池中寻找是否有空闲的线程,如果有空闲线程,就会直接用空闲线程运行你的Job。一个Job终止时,它所对应的线程也不会立即终止,它会被返回到线程池中以备重复利用。这样,我们可以节省创建和销毁线程的开销下面我们从几个方面来讨论Eclipse中Job的实现和使用方面的问题。Eclipse中Job的实现  Eclipse的核心包中提供了

6、一个JobManager类,它实现了IJobManager接口,Eclipse中Job的管理和调度都是由JobManager来实现的。JobManager维护有一个线程池,用来运行Job。当我们调用Job的schedule方法后,这个Job会被JobManager首先放到一个Job运行的等待队列中去。之后,JobManager会通知线程池有新的Job加入了运行等待队列。线程池会找出一个空闲的线程来运行Job,如果没有空闲线程,线程池会创建一个新的线程来运行Job。一旦Job运行完毕,运行Job的线程会返回到线程池中以备下次使用。从上面Job运行的过程我们可以看

7、到,JobManager介入了一个Job运行的全过程,它了解Job什么时候开始,什么时候结束,每一时候Job的运行状态。JobManager将这些Job运行的信息以接口的方式提供给用户,同时它也提供了接口让我们可以介入Job的调度等,从而我们拥有了更加强大的控制Job的能力。  为了我们更方便的了解Job所处的状态,JobManager设置Job的一个状态标志位,我们可以通过Job的getState方法获得Job当前的状态值以了解其状态:  NONE:当一个Job刚构造的时候,Job就会处于这种状态。当一个Job执行完毕(包括被取消)后,Job的状态也会变回这

8、种状态。WAITING:当我们调用了J

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。