主線程負責管理由它建立的子執行緒,建立、啟動、掛起、停止等。
主線程通過發訊息的方式管理子執行緒,例如,給子執行緒傳送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 兩個方法之間互斥 ...