線程

1.派生線程類 Thread 的子類,并在子類中重寫(xiě) run()方法。Thread 子類的實(shí)例對(duì)象是 一個(gè)線程對(duì)象,并且該線程有專門(mén)定制的線程 run()方法,啟動(dòng)線程后就執(zhí)行子類中 重寫(xiě)的 run()方法。
2.實(shí)現(xiàn) Runnable 接口并重新定義 run()方法。先定義一個(gè)實(shí)現(xiàn) Runnable()接口的類,在 該類中定義 run()方法,然后創(chuàng)建新的線程類對(duì)象,并以該對(duì)象作為 Thread 類構(gòu)造 方法的 數(shù)創(chuàng)建一個(gè)線程。

// 文  程序 10.6 ThreadStart.java public class ThreadStart
{
public static void main(String[ ] args) {
 述  程啟動(dòng)  
Runnable r = new RunnableThread();
Thread rt = new Thread(r);
rt.start();
SubThread st = new SubThread("SubThread");// 建      SubThread   
// 建      RunnableThread    // 建      程   rt
//啟動(dòng) 程
程序 10.6 中,類 RunnableThread 實(shí)現(xiàn) Runnable 接 口,并重寫(xiě) run 方法;SubThread 繼承 Thread,同樣也 實(shí)現(xiàn)了 run 方法。在 main 方法中,先通過(guò) RunnableThread 類創(chuàng)建,并啟動(dòng)線程 rt;然后通過(guò) SubThrea  類創(chuàng)建, 并啟動(dòng)  一個(gè)線程 st。
st.start();
//啟動(dòng) 程
} }
class RunnableThread implements Runnable{ // 載 run   
public void run() {
System.out.println("RunnableThread 啟動(dòng)");
class SubThread extends Thread{ SubThread(){}
//       SubThread    的  方法 SubThread(String Name)
{
super(Name);
}
// 載 run    public void run() {
System.out.println("SubThread 啟動(dòng)");
//       
//       SubThread   方法
// 用  的  方法
//       
} }
} }

一個(gè)線程有 4 種 態(tài),任何一個(gè)線程都處于這 4 種 態(tài)中的一種 態(tài)。

1.創(chuàng)建(new) 態(tài):調(diào)用 new 方法產(chǎn)生一個(gè)線程對(duì)象后、調(diào)用 start 方法前所處的 態(tài)。線程對(duì)象雖然已經(jīng)創(chuàng)建,但還沒(méi)有調(diào)用 start 方法啟動(dòng),因此無(wú)法執(zhí)行。當(dāng)線程 處于創(chuàng)建 態(tài)時(shí),線程對(duì)象可以調(diào)用 start 方法進(jìn)入啟動(dòng) 態(tài),也可以調(diào)用 stop 方法
進(jìn)入 態(tài)。
2.可運(yùn)行(runnable) 態(tài):當(dāng)線程對(duì)象執(zhí)行 start()方法后,線程就 到可運(yùn)行 態(tài)。
進(jìn)入此 態(tài)只是說(shuō) 線程對(duì)象具有了可以運(yùn)行的條件,但線程并不一定處于運(yùn)行 態(tài)。因?yàn)樵趩翁幚砥飨到y(tǒng)中運(yùn)行多線程程序時(shí),一個(gè)時(shí)間點(diǎn)只有一個(gè)線程運(yùn)行,系 統(tǒng)通過(guò)調(diào) 機(jī)制實(shí)現(xiàn) 意義上的運(yùn)行線程 處理器。因此一個(gè)線程是否在運(yùn)行, 了線程必須處于 Runnable 態(tài)之 ,還取決于優(yōu)先級(jí)和調(diào) 。
3.不可運(yùn)行(non Runnable) 態(tài):線程處于不可運(yùn)行 態(tài)是由于線程被 起或者發(fā) 生 ,例如對(duì)一個(gè)線程調(diào)用 wait() 數(shù)后,它就可能進(jìn)入 態(tài);調(diào)用線程的 notify 或 notifyAll 方法后它才能 次回到可執(zhí)行 態(tài)。
4.退出(done) 態(tài):一個(gè)線程可以從任何一個(gè) 態(tài)中調(diào)用 stop 方法進(jìn)入 出 態(tài)。 線程一 進(jìn)入 出 態(tài)就不存在了,不能 回到其他的 態(tài)。 此之 ,如果線 程執(zhí)行完 run 方法,也會(huì)自動(dòng)進(jìn)入 出 態(tài)。

###等待線程結(jié)束
>1.public final boolean isAlive()
2.public final void join(long millis) throws InterruptedException

###線程調(diào)度
 >1.public final void setPriority(int newPriority)
2.public final int getPriority()
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 本文主要講了java中多線程的使用方法、線程同步、線程數(shù)據(jù)傳遞、線程狀態(tài)及相應(yīng)的一些線程函數(shù)用法、概述等。 首先講...
    李欣陽(yáng)閱讀 2,594評(píng)論 1 15
  • Java多線程學(xué)習(xí) [-] 一擴(kuò)展javalangThread類 二實(shí)現(xiàn)javalangRunnable接口 三T...
    影馳閱讀 3,106評(píng)論 1 18
  • 該文章轉(zhuǎn)自:http://blog.csdn.net/evankaka/article/details/44153...
    加來(lái)依藍(lán)閱讀 7,465評(píng)論 3 87
  • 寫(xiě)在前面的話: 這篇博客是我從這里“轉(zhuǎn)載”的,為什么轉(zhuǎn)載兩個(gè)字加“”呢?因?yàn)檫@絕不是簡(jiǎn)單的復(fù)制粘貼,我花了五六個(gè)小...
    SmartSean閱讀 4,936評(píng)論 12 45
  • 下面是我自己收集整理的Java線程相關(guān)的面試題,可以用它來(lái)好好準(zhǔn)備面試。 參考文檔:-《Java核心技術(shù) 卷一》-...
    阿呆變Geek閱讀 15,123評(píng)論 14 507

友情鏈接更多精彩內(nèi)容