網站:
JavaEye
作者:
iwinyeah
鏈接:
http://iwinyeah.javaeye.com/blog/172200
發表時間: 2008年03月15日
聲明:本文系JavaEye網站發布的原創博客文章,未經作者書面許可,嚴禁任何網站轉載本文,否則必將追究法律責任!
我以前在其他地方發過的貼子,這幾種方式都沒問題,哪種較好或者說在什么情況下用哪種方法較好呢?
// 方法一
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