Eclipse用戶端程式中多線程的使用

來源:互聯網
上載者:User

簡介:本文分析了Eclipse中多線程程式的實現,討論了在Eclipse用戶端程式開發中應用多線程的方 法和要注意的問題,同時也討論了多線程程式的一些調試和問題解決的方法。

Eclipse作為一個開發平台,使用越來越廣泛,基於Eclipse Rich Client Platform開發的用戶端程式 也越來越多。在當今越來越複雜的應用環境中,我們的用戶端程式不可避免的要同時進行多任務的處理。 一個優異的用戶端程式都會允許使用者同時啟動多個任務,從而大大提高使用者的工作效率以及使用者體驗。本 文中我們來談談Eclipse中實現多任務的方式。

在我們基於Eclipse的Java程式中,我們有很多種方式提供多任務的實現。熟悉Java的朋友立即會想到 Java的Thread類,這是Java中使用最多的一個實現多任務的類。Eclipse平台為多任務處理提供了自己的 API,那就是Job以及UIJob。Eclipse中的Job是對Java Thread的一個封裝,為我們實現多任務提供了更方 便的介面。以下是Job的基本用法:

清單 1. Job用法樣本

Job job = new Job(“Job Name”){
protected IStatus run(IProgressMonitor monitor) {

     // 在這裡添加你的任務代碼
     return Status.OK_STATUS;
   }
};
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介面來實現多任務,而不是使用Java的thread。為 什麼呢?主要有以下幾個原因:

Job是可重用的工作單元,一個Job我們可以很方便的讓它多次執行。

Job提供了方便的介面,使得我們在處理中能夠很方便的與外界交流,報告當前的執行進度

Eclipse提供了相應的機制使得程式員可以方便的介入Job的調度,例如我們可以方便的實現每次只有 一個同一類型的Job在運行

Eclipse預設提供了Job管理的程式,可以查看當前所有的Job和它們的進度,也提供UI終止、暫停、繼 續指定的Job

使用Job可以提高程式的效能,節省線程建立和銷毀的開銷。Eclipse中的Job封裝了線程池的實現。當 我們啟動一個Job時,Eclipse不會馬上建立一個Thread,它會在它的線程池中尋找是否有閒置線程,如 果有空閑線程,就會直接用空閑線程運行你的Job。一個Job終止時,它所對應的線程也不會立即終止,它 會被返回到線程池中以備重複利用。這樣,我們可以節省建立和銷毀線程的開銷

下面我們從幾個方面來討論Eclipse中Job的實現和使用方面的問題。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.