程序方法 run和start的區別

2021-10-07 20:25:45 字數 1684 閱讀 3946

start() 方法來啟動程序,真正實現了多程序執行,這時無需等待 run 方法體**執行完畢而直接繼續執行下面的**:呼叫 process 類的 start() 方法來啟動乙個程序,這時此程序處於就緒(可執行)狀態,並沒有執行,一旦得到 cpu 時間片,就開始執行 run() 方法,這裡方法 run() 稱為程序體,當程序結束後,不可以重新啟動。

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

驗證:

import multiprocessing

import time

defdownload()

:print()

for i in

range(3

):print

('-----1------'

) time.sleep(1)

defupload()

:print

('上傳完畢'

)for i in

range(3

):print

('-----2------'

) time.sleep(1)

defmain()

:#queue = multiprocessing.queue() #例項化佇列

process1 = multiprocessing.process(target=upload)

process2 = multiprocessing.process(target=download)

process1.run(

) process2.run(

)if __name__ ==

'__main__'

: main(

)

如果使用start方法:

import multiprocessing

import time

defdownload()

:print()

for i in

range(3

):print

('-----1------'

) time.sleep(1)

defupload()

:print

('上傳完畢'

)for i in

range(3

):print

('-----2------'

) time.sleep(1)

defmain()

:#queue = multiprocessing.queue() #例項化佇列

process1 = multiprocessing.process(target=upload)

process2 = multiprocessing.process(target=download)

# process1.run()

# process2.run()

process1.start(

) process2.start(

)if __name__ ==

'__main__'

: main(

)

thread中start和run方法的區別

認識thread的start和run 1 start 用 start方法來啟動執行緒,真正實現了多執行緒執行,這時無需等待run方法體 執行完畢而直接繼續執行下面的 通過呼叫thread類的 start 方法來啟動乙個執行緒,這時此執行緒處於就緒 可執行 狀態,並沒有執行,一旦得到cpu時間片,就開...

Thread中start和run方法的區別

呼叫start 方法會建立乙個新的子執行緒並啟動 呼叫run 方法只是thread的乙個普通方法呼叫 public class threadtest public static void main string args system.out.println 當前主線程是 thread.curren...

Thread中start和run方法的區別

public class threadtest public static void main string args system.out.println 這裡是main方法 thread.currentthread getname t.run t.start 呼叫run方法出現的結果 呼叫sta...