本篇文章為大家展示了Java 中怎么利用Runnable線(xiàn)程編寫(xiě)接口,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過(guò)這篇文章的詳細(xì)介紹希望你能有所收獲。
創(chuàng)新互聯(lián)建站是一家專(zhuān)業(yè)提供土默特左旗企業(yè)網(wǎng)站建設(shè),專(zhuān)注與網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、H5網(wǎng)站設(shè)計(jì)、小程序制作等業(yè)務(wù)。10年已為土默特左旗眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專(zhuān)業(yè)網(wǎng)站建設(shè)公司優(yōu)惠進(jìn)行中。
將我們的線(xiàn)程代碼寫(xiě)入其中,就完成了這一部分 的任務(wù)。但是Runnable接口并沒(méi)有任何對(duì)線(xiàn)程的支持,我們還必須創(chuàng)建Thread類(lèi)的實(shí)例,這一點(diǎn)通過(guò)Thread類(lèi)的構(gòu)造函 數(shù) public Thread(Runnable target);來(lái)實(shí)現(xiàn)。
下面是一個(gè)例子:
public class MyThread implements Runnable { int count= 1, number; public MyThread(int num) { numnumber = num; System.out.println("創(chuàng)建線(xiàn)程 " + number); } public void run() { while(true) { System.out.println ("線(xiàn)程 " + number + ":計(jì)數(shù) " + count); if(++count== 6) return; } } public static void main(String args[]) { for(int i = 0; i 〈 5; i++) new Thread(new MyThread(i+1)).start(); } }
嚴(yán)格地說(shuō),創(chuàng)建Thread子類(lèi)的實(shí)例也是可行的,但是必須注意的是,該子類(lèi)必須沒(méi)有覆蓋 Thread 類(lèi)的 run 方法,否則該線(xiàn)程執(zhí)行的將是子類(lèi)的 run 方法,而不是我們用以實(shí)現(xiàn)Java Runnable線(xiàn)程接口的類(lèi)的 run 方法,對(duì)此大家不妨試驗(yàn)一下。
Java線(xiàn)程撥號(hào)器如何進(jìn)行代碼編寫(xiě)
Java線(xiàn)程檢測(cè)基本的問(wèn)題猜想
Java線(xiàn)程同步鎖解決共享數(shù)據(jù)安全
Java線(xiàn)程死鎖如何避免這一悲劇
Java線(xiàn)程模型如何完善相關(guān)的數(shù)據(jù)處理
使用 Runnable 接口來(lái)實(shí)現(xiàn)多線(xiàn)程使得我們能夠在一個(gè)類(lèi)中包容所有的代碼,有利于封裝,它的缺點(diǎn)在于,我們只能使用一套代碼,若想創(chuàng)建多個(gè)線(xiàn)程 并使各個(gè)線(xiàn)程執(zhí)行不同的代碼,則仍必須額外創(chuàng)建類(lèi),如果這樣的話(huà),在大多數(shù)情況下也許還不如直接用多個(gè)類(lèi)分別繼承 Thread 來(lái)得緊湊。
綜上所述,兩種方法各有千秋,大家可以靈活運(yùn)用。下面讓我們一起來(lái)研究一下多線(xiàn)程使用中的一些問(wèn)題。
Java Runnable線(xiàn)程的四種狀態(tài)
1. 新?tīng)顟B(tài):線(xiàn)程已被創(chuàng)建但尚未執(zhí)行(start() 尚未被調(diào)用)。
2. 可執(zhí)行狀態(tài):線(xiàn)程可以執(zhí)行,雖然不一定正在執(zhí)行。CPU 時(shí)間隨時(shí)可能被分配給該線(xiàn)程,從而使得它執(zhí)行。
3. 死亡狀態(tài):正常情況下 run() 返回使得線(xiàn)程死亡。調(diào)用 stop()或 destroy() 亦有同樣效果,但是不被推薦,前者會(huì)產(chǎn)生異常,后者是強(qiáng)制終止,不會(huì)釋放鎖。
4. 阻塞狀態(tài):線(xiàn)程不會(huì)被分配 CPU 時(shí)間,無(wú)法執(zhí)行。
上述內(nèi)容就是Java 中怎么利用Runnable線(xiàn)程編寫(xiě)接口,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。