執行緒中run 和start 的區別

2021-08-22 15:08:11 字數 969 閱讀 3582

start() 和 run()的區別說明

start() : 它的作用是啟動乙個新執行緒,新執行緒會執行相應的run()方法。start()不能被重複呼叫,真正的實現了多執行緒併發執行。

run() : 方法只是類的乙個普通方法而已,如果直接呼叫run方法,程式中依然只有主線程這乙個執行緒,其程式執行路徑還是只有一條,還是要順序執行,還是要等待run方法體執行完畢後才可繼續執行下面的**,這樣就沒有達到多執行緒的目的!

**示例:

public

class

threadstartandrun

implements

runnable catch (interruptedexception e)

if (num > 0) else }}

}

public

static

void

main(string arg)

}

輸出結果:

thread-0,i=2

thread-1,i=2

thread-0,i=1

thread-1,i=1

可以看出start()方法開啟了倆個執行緒併發執行了

public

static

void

main(string arg)

}

輸出結果:

main,i=2

main,i=1

main,i=2

main,i=1

可以發現run()程式中依然只有主線程這乙個執行緒,並且是順序執行

多執行緒中run 和start 的區別

實現並啟動執行緒有兩種方法 1 寫乙個類繼承自thread類,重寫run方法。用start方法啟動執行緒 2 寫乙個類實現runnable介面,實現run方法。用new thread runnable target start 方法來啟動 多執行緒原理 相當於玩遊戲機,只有乙個遊戲機 cpu 可是有...

JAVA 執行緒中start 和run 的區別

run方法相當於呼叫了該類的普通方法。start會執行完整的執行緒週期。run方法 如下。public class test1 class mythread extends thread class mythread2 extends thread 執行結果如下。將執行緒執行方法改至srart 如下...

JAVA 執行緒run和start的區別

thread類中run 和start 方法的區別如下 run 方法 在本執行緒內呼叫該runnable物件的run 方法,可以重複多次呼叫 start 方法 啟動乙個執行緒,呼叫該runnable物件的run 方法,不能多次啟動乙個執行緒 package com.ljq.test public cl...