主線程和子執行緒

2021-09-29 01:19:03 字數 600 閱讀 2622

主線程負責管理由它建立的子執行緒,建立、啟動、掛起、停止等。

主線程通過發訊息的方式管理子執行緒,例如,給子執行緒傳送start()訊息,子執行緒啟動,子執行緒執行入口的run()方法。

thread有下面兩個構造方法

thread(runnable target, string name)

thread(runnable target)

這裡的實現是指實現runnable介面。一開始就說明過,子執行緒的執行入口是runnable介面的run()方法。所以,在建立執行緒的時候,給構造方法傳遞乙個runnable的例項(這裡可以使用匿名內部類和lambad表示式)。

舉個例子:

class runner implements runnable

}public class helloworld

}

thread類本身就實現了runnable介面,所以,只需要重寫run()方法即可。

class mythread extends thread

}public class helloworld

}

主線程和子執行緒

子執行緒通過 handlerthread的thread.getlooper 繫結,在主線程的handler的handlermessage中呼叫threadhandler.sendmessagedelay msg,1000 向子執行緒傳送訊息。在子執行緒中通過handler.sendmessagede...

主線程和子執行緒總結

執行結果 從上面可以看到 如果主線程和子執行緒是並行的,雖然都是用while 1 但是倚靠 cpu的排程,主線程和子執行緒都有機會得到執行。如果要在子執行緒裡面改變主線程裡面的資料,就在 pthread create 裡面的最後 乙個引數使用傳位址呼叫 void c,否則使用傳值呼叫 void c ...

子執行緒和 主線程 互換

package demo 子執行緒迴圈5次,主線程迴圈10次。依次交替。整個交替迴圈3次 public class threadtest static void init start new thread new runnable start print package demo 兩個方法之間互斥 ...