滿意答案
MythSwift
2013.09.10
采納率:55%????等級:12
已幫助:9461人
一個進程就相當于一個主線程。
fork一個進程與create一個線程的區別:
fork進程:子進程復制父進程的進程環境。父進程結束不會影響子進程的運行。進程切換復制進程環境。
create線程:子線程共享父線程的線程環境。線程(一個主線程下的多個線程)切換不復制環境,所以線程運行快,省去了復制環境的時間。主線程運行結束,子線程的運行就無意義了。
子線程返回主線程的方法:
1.主線程等待子線程運行結束
2.用信號,比如說用主線程有一個全局變量 p=1,子線程有一 while(p) 一直在無限運行,這是主線程 p = 0,while(p) 子線程退出。
一個進程 create了幾個線程,進程fork(),這是fork出的子進程不能復制父線程的線程,也就是說,fork出來的子進程只復制父現成的執行環境。
線程是一個執行體。
進程是運行環境+執行體。
----關于第二個問題----
sleep() 就是線程睡了 睡一頓時間 會自動喚醒
wait() 就是停下了 要另一個函數 【例如java里是 notify()】 來喚醒他
block() 才疏學淺 沒聽過
00分享舉報