1. 程式人生 > >nuwa :執行緒分析,nuwa 如何產生,nuwa如何恢復執行緒?

nuwa :執行緒分析,nuwa 如何產生,nuwa如何恢復執行緒?

b2g 程序主執行緒b2g thread 經過b2g loader,儲存或載入各必備資源,完成後。開始runprocess,即開始執行新的程序,開始fork操作(這裡用了socket pair)。b2g 和 nuwa,fork的位置在比較前,所以,nuwa fork後只複製了必備且不影響b2g的部分(fork時子程序獲得父程序資料空間、堆和棧的複製,所以變數的地址(當然是虛擬地址)也是一樣的。)

也即是先複製了一個同b2g process 一樣的程序(此時的b2g 還只是一個b2g單執行緒的程序),現在還不是nuwa ,暫且叫它preNuwa(前nuwa 程序,成為nuwa之前的程序)。

下面兵分兩路:

1.b2g process

b2g 一路一波很猛的操作走下去,建立了各類核心執行緒。

2.nuwa process

prenuwa process 調:ProcLoaderServiceRun初始化好IPC通道(chenel)的child端,messageloop,在此安靜等待b2g "load nuwa"的命令。