Java Runnable線程如何才能更好的適應目前的編程環境呢?下面我們就看看如何才能更好的進行相關環境希望下面的文章對大家有所幫助Java Runnable線程接口只有一個方法run()我們聲明自己的類實現Runnable接口並提供這一方法
將我們的線程代碼寫入其中就完成了這一部分 的任務但是Runnable接口並沒有任何對線程的支持我們還必須創建Thread類的實例這一點通過Thread類的構造函 數 public Thread(Runnable target);來實現
下面是一個例子
public class MyThread implements Runnable
{
int count= number;
public MyThread(int num)
{
numnumber = num;
Systemoutprintln(創建線程 + number);
}
public void run()
{
while(true)
{
Systemoutprintln
(線程 + number + :計數 + count);
if(++count== ) return;
}
}
public static void main(String args[])
{
for(int i = ; i 〈 ;
i++) new Thread(new MyThread(i+))start();
}
}
嚴格地說創建Thread子類的實例也是可行的但是必須注意的是該子類必須沒有覆蓋 Thread 類的 run 方法否則該線程執行的將是子類的 run 方法而不是我們用以實現Java Runnable線程接口的類的 run 方法對此大家不妨試驗一下
使用 Runnable 接口來實現多線程使得我們能夠在一個類中包容所有的代碼有利於封裝它的缺點在於我們只能使用一套代碼若想創建多個線程 並使各個線程執行不同的代碼則仍必須額外創建類如果這樣的話在大多數情況下也許還不如直接用多個類分別繼承 Thread 來得緊湊
綜上所述兩種方法各有千秋大家可以靈活運用下面讓我們一起來研究一下多線程使用中的一些問題
Java Runnable線程的四種狀態
新狀態線程已被創建但尚未執行(start() 尚未被調用)
可執行狀態線程可以執行雖然不一定正在執行CPU 時間隨時可能被分配給該線程從而使得它執行
死亡狀態正常情況下 run() 返回使得線程死亡調用 stop()或 destroy() 亦有同樣效果但是不被推薦前者會產生異常後者是強制終止不會釋放鎖
阻塞狀態線程不會被分配 CPU 時間無法執行
From:http://tw.wingwit.com/Article/program/Java/hx/201311/25994.html