- 相關(guān)推薦
JavaRunnable線(xiàn)程編寫(xiě)接口代碼
avaRunnable線(xiàn)程如何才能更好的適應目前的編程環(huán)境呢?下面我們就看看如何才能更好的進(jìn)行相關(guān)環(huán)境。希望下面的文章對大家有所幫助。JavaRunnable線(xiàn)程接口只有一個(gè)方法run(),我們聲明自己的類(lèi)實(shí)現Runnable接口并提供這一方法。
將我們的線(xiàn)程代碼寫(xiě)入其中,就完成了這一部分 的任務(wù)。但是Runnable接口并沒(méi)有任何對線(xiàn)程的支持,我們還必須創(chuàng )建Thread類(lèi)的實(shí)例,這一點(diǎn)通過(guò)Thread類(lèi)的構造函 數 public Thread(Runnable target);來(lái)實(shí)現。
下面是一個(gè)例子:
1.public class MyThread implements Runnable
2.{
3.int count= 1, number;
4.public MyThread(int num)
5.{
6.numnumber = num;
7.System.out.println("創(chuàng )建線(xiàn)程 " + number);
8.}
9.public void run()
10.{
11.while(true)
12.{
13.System.out.println
14.("線(xiàn)程 " + number + ":計數 " + count);
15.if(++count== 6) return;
16.}
17.}
18.public static void main(String args[])
19.{
20.for(int i = 0; i 〈 5;
21.i++) new Thread(new MyThread(i+1))。start();
22.}
23.}
嚴格地說(shuō),創(chuàng )建Thread子類(lèi)的實(shí)例也是可行的,但是必須注意的是,該子類(lèi)必須沒(méi)有覆蓋 Thread 類(lèi)的 run 方法,否則該線(xiàn)程執行的將是子類(lèi)的 run 方法,而不是我們用以實(shí)現Java Runnable線(xiàn)程接口的類(lèi)的 run 方法,對此大家不妨試驗一下。
使用 Runnable 接口來(lái)實(shí)現多線(xiàn)程使得我們能夠在一個(gè)類(lèi)中包容所有的代碼,有利于封裝,它的缺點(diǎn)在于,我們只能使用一套代碼,若想創(chuàng )建多個(gè)線(xiàn)程 并使各個(gè)線(xiàn)程執行不同的代碼,則仍必須額外創(chuàng )建類(lèi),如果這樣的話(huà),在大多數情況下也許還不如直接用多個(gè)類(lèi)分別繼承 Thread 來(lái)得緊湊。
綜上所述,兩種方法各有千秋,大家可以靈活運用。下面讓我們一起來(lái)研究一下多線(xiàn)程使用中的一些問(wèn)題。
Java Runnable線(xiàn)程的四種狀態(tài)
1.新?tīng)顟B(tài):線(xiàn)程已被創(chuàng )建但尚未執行(start() 尚未被調用)。
2.可執行狀態(tài):線(xiàn)程可以執行,雖然不一定正在執行。CPU 時(shí)間隨時(shí)可能被分配給該線(xiàn)程,從而使得它執行。
3.死亡狀態(tài):正常情況下 run() 返回使得線(xiàn)程死亡。調用 stop()或 destroy() 亦有同樣效果,但是不被推薦,前者會(huì )產(chǎn)生異常,后者是強制終止,不會(huì )釋放鎖。
4.阻塞狀態(tài):線(xiàn)程不會(huì )被分配 CPU 時(shí)間,無(wú)法執行。
【JavaRunnable線(xiàn)程編寫(xiě)接口代碼】相關(guān)文章:
現代CSS代碼的編寫(xiě)建議07-27
編寫(xiě)Web前端代碼的注意事項08-03
J2EE項目代碼編寫(xiě)規范08-21
ASP.NET連SQL7接口的源代碼06-06
php 利用array-slice函數獲取隨機數據編寫(xiě)代碼08-13
Java線(xiàn)程同步的方法10-25
HTML的代碼注釋10-07
過(guò)濾HTML代碼08-29