執行緒中的Run()與start():全面講解
多執行緒程式設計中,有效理解Thread.run之間的區別() 和Runnable.run() 是至關重要。
問題:
考慮以下代碼片段:
public static void main() { R1 r1 = new R1(); R2 r2 = new R2(); r1.run(); r2.run(); }
public static void main() { R1 r1 = new R1(); R2 r2 = new R2(); Thread t1 = new Thread(r1); Thread t2 = new Thread(r2); t1.start(); t2.start(); }
答案:
第一個範例:否多執行緒
第一個片段中,r1.run() 和 r2.run() 直接執行,無需建立新執行緒。因此,R1 和 R2 在主執行緒中依序執行。
第二個範例:多執行緒
在第二個片段中,建立了 Thread 物件(t1 和 t2)分別封裝 R1 和 R2 實例。當呼叫 t1.start() 和 t2.start() 時,會啟動新線程,每個線程與主線程並行執行對應 Runnable 實作的 run() 方法。
Key區別:
以上是Java 執行緒中的 Run() 與 start():多執行緒行為有何不同?的詳細內容。更多資訊請關注PHP中文網其他相關文章!