[導(dǎo)入]我在J2ME中用過的幾種后臺(tái)線程方法(如何選擇?)
網(wǎng)站: JavaEye 作者: iwinyeah 鏈接:http://iwinyeah.javaeye.com/blog/172200 發(fā)表時(shí)間: 2008年03月15日
聲明:本文系JavaEye網(wǎng)站發(fā)布的原創(chuàng)博客文章,未經(jīng)作者書面許可,嚴(yán)禁任何網(wǎng)站轉(zhuǎn)載本文,否則必將追究法律責(zé)任!
我以前在其他地方發(fā)過的貼子,這幾種方式都沒問題,哪種較好或者說在什么情況下用哪種方法較好呢?
// 方法一 public class firstManager implements Runnable { public void runTask() { (new Thread(this)).start(); } public void run() { System.out.println("\nfirst thread method!"); // Do some thing ... } } // 方法二 public class secondManager { private BackTask backTask; private Timer timer; public secondManager() { backTask = new BackTask(); timer = new Timer(); } public void runTask() { timer.schedule(backTask, 0); } private class BackTask extends TimerTask { public void run() { System.out.println("\nsecond thread method!"); // Do some thing ... } } } // 方法三 public class thirdManager { private BackTask backTask; private int cmd = 0; public thirdManager() { backTask = new BackTask(); backTask.start(); } public void runTask() { synchronized (backTask) { cmd = 1; backTask.notify(); } } private class BackTask extends Thread { public void run() { while (true) { try { if (cmd == 0) { synchronized (this) { wait(); } continue; } System.out.println("\nthird thread method!"); // Do some thing ... } catch (Exception e) { } cmd = 0; } } } } // 用例 public void main(){ firstManager man1 = new firstManager(); secondManager man2 = new secondManager(); thirdManager man3 = new thirdManager(); man1.runTask(); man2.runTask(); man3.runTask(); }
本文的討論也很精彩,瀏覽討論>>
JavaEye推薦
文章來源:http://iwinyeah.javaeye.com/blog/172200
posted on 2008-03-15 17:47 iwinyeah 閱讀(203) 評論(0) 編輯 收藏 所屬分類: Java 基礎(chǔ)知識(shí)