精華區beta CSSE 關於我們 聯絡資訊
※ 引述《in2 (敬請期待 :P)》之銘言: : ※ 引述《cipherman (雨云無日晴)》之銘言: : : Thread和Process的差別可以用個具體的譬喻來說... : : 就是像pcman和firefox那樣...每個分頁都是一個thread... : : 若是要開一個新頁就要另外開一個新的視窗就是新開一個process... : : 所以說,thread和process主要的差別在要執行的動作一樣... : : thread則不再另外allocate一個space放要執行的code.... : 這樣子的說法其實會有爭議, : 因為 copy on write的技術 (我猜應該許多作業系統都有做了) , : 一個 process進行 fork(2)的時候, : 當下 code (以及其他大部份的東西) 並不會被弄成兩份, : 而 code space 在大部份的情況下又是 read only的, : 所以理論上不管你 fork 幾次都還是會只有一份. : 我倒比較好奇的是, : 如果我故意跑兩隻一樣的程式, : 而不是先跑一隻起來再讓他 fork, : 醬子在記憶體中, code會變兩份嗎? 或是只有一份? 如果是在shell下面去"跑兩個"一模一樣的程式, i.e. 下兩次執行程式的command 其實也是先fork過了不是嗎?只是fork完直接exec(); 這樣的話 應該是兩份吧 ... : 個人猜測應該是前者比較合理, : 後者的話似乎有點實作上的困難 @@ : 要怎麼知道新跑起來的這個程式是不是和其中一個已經在跑的程式一樣呢? :Q -- 笑年ㄟ:老闆,這是什麼啊?這麼苦! 老闆 :笑年ㄟ,這就是人蔘啊 ~~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.96.129.168