2013-07-17 37 views
-6

我有一個多線程應用程序的問題,勢必按鈕停止線程新主題(可運行,名)返回NULL

thread = NULL; 

之後,我開始另一個線程(使用相同的變量)

thread = new Thread(this, "game"); 
thread.start(); 

新的線程後,線程仍然是空的,我不知道爲什麼請幫助。

+4

字段'thread'絕對不是'null'。 –

+0

線程結束太快。 –

+1

構造函數不可能返回null。 – SLaks

回答

0

沒有更多的信息,以下是真的只有猜測。請在將來展示更多細節並解釋您爲調試問題所做的工作。

新的線程後,線程仍然是空的,我不知道爲什麼請幫助。

構造函數不可能返回null所以其他事情正在發生。

Thread thread = null; 
thread = new Thread(this, "game"); 
// thread is guaranteed to be non-null here 

也許你在兩個線程之間共享線程字段?例如,也許你的主線程啓動後臺線程和UI線程試圖讀取它?在這種情況下,您應該讓線程爲volatile以在線程之間共享。

volatile Thread thread = null; 

如果它已經不穩定,那麼你正在處理thread字段的不同實例。也許thread字段應該標記爲static

+0

它是不穩定的, – Dragonow

+1

鑑於OP缺乏知識,我強烈懷疑他使用的是局部變量而不是字段。調用不同的方法當然不能訪問那個''thread''變量。 – f1sh

+0

我可以訪問此字段。有時這個工作 – Dragonow