Python中Thread類的start和run方法的區(qū)別?
若調(diào)用start,則先執(zhí)行主線程的,后執(zhí)行子線程的; 若調(diào)用run,相當(dāng)于函數(shù)調(diào)用,按照程序的順序執(zhí)行;
1、start()方法來啟動線程,真正實現(xiàn)了多線程運行。 這時無需等待run方法體代碼執(zhí)行完畢,可以直接繼續(xù)執(zhí)行下面的代碼;通過調(diào)用Thread類的start()方法來啟動一個線程, 這時此線程是處于就緒狀態(tài), 并沒有運行。 然后通過此Thread類調(diào)用方法run()來完成其運行操作的, 這里方法run()稱為線程體,它包含了要執(zhí)行的這個線程的內(nèi)容, Run方法運行結(jié)束, 此線程終止。然后CPU再調(diào)度其它線程。
2、run()方法當(dāng)作普通方法的方式調(diào)用。 程序還是要順序執(zhí)行,要等待run方法體執(zhí)行完畢后,才可繼續(xù)執(zhí)行下面的代碼; 程序中只有主線程——這一個線程, 其程序執(zhí)行路徑還是只有一條, 這樣就沒有達(dá)到寫線程的目的。