super()
只是調用父構造函數(在你的情況下,默認Thread
構造函數)。實際啓動新線程的方法是start()
。正如其他人所說,擴展Thread
的設計很糟糕。
是的,你可以創建一個實現Runnable
class MySpecialThread implements Runnable {
public void run() {
// Do something
}
}
一類,你可以在一個新的線程像這樣啓動它:
Thread t = new Thread(new MySpecialThread());
// Add it to a collection, track it etc.
t.start(); // starts the new thread
1 - 您可以使用Runnables
或集合Thread
的集合使用下面的示例。
MySpecialThread m = new MySpecialThread();
List<Runnable> runnables = new ArrayList<Runnable>();
runnables.add(m);
List<Thread> threads = new ArrayList<Thread>();
threads.add(new Thread(m));
2-甲方法不能包含一類,但上述例子MySpecialThread
是行爲類似的任何其它類的類。你可以寫一個構造函數中添加方法和字段等
歡迎回來Olivier10178。 run()可以包含一個內部類。 –
你能提供一些更多的信息嗎?當然,你可以擴展線程?然後你需要調用Thread.start()來使它們運行。 – starf
你通常應該避免擴展'Thread'。你想達到什麼目的?爲什麼你不能將'Runnable's傳遞給'Thread'? – SLaks