我正在學習過程分支,但也知道如何在Ruby中專門完成它。在我的閱讀中,我學習了「寫複製」行爲。從我的理解,這基本上沒有任何內存的副本,直到子線程試圖進行寫操作。這是否意味着當子進程試圖寫一個父內存被複制和修改,並且原始內存保持不變(並且父內存不受子進程影響?)的時候。謝謝。Ruby中的寫入分支複製
5
A
回答
6
是的。寫入時複製意味着只有兩個進程相同的內存頁保持共享。如果子進程或父進程寫入其中一個共享頁面,則寫入將被攔截,頁面將被複制,並且寫入將發生在僅由子/父進程擁有的新頁面上。
值得一提的是,這與Ruby沒有任何關係。 Ruby使用底層系統的fork系統調用,在Linux和大多數UNIX上都有寫入行爲的複製。
相關問題
- 1. 寫入時複製支持STL
- 2. 如何編寫一個git鉤子來限制寫入分支?
- 3. 在Ruby中寫入二進制文件
- 4. SVN複製中繼到分支,複製中繼文件夾呢?
- 5. 將分支的一個子分支的更改複製到Git中的另一個分支的子分支
- 6. 從中繼複製提交到分支
- 7. Ankh SVN:將代碼複製到新分支而不檢入當前分支
- 8. 複製髒分支保留它的新分支
- 9. NumPy Array寫入時複製
- 10. 如何複製帶有hierarchyid的分支?
- 11. mercurial複製一個現有的分支
- 12. 如何將GitHub上的遠程分支複製到新的遠程分支中?
- 13. 如何從svn分支複製到另一個分支
- 14. Git如何將一個分支複製到master分支
- 15. 複製主分支數據到其他分支
- 16. 將SVN從一個分支複製到另一個分支
- 17. 如何將本地分支複製到新分支?
- 18. Git從一個分支複製到另一個分支
- 19. Nifi:如何避免複製部分寫入的文件
- 20. git複製分支內容到主
- 21. TFS將變更集複製到分支
- 22. 在Git分支之間複製代碼
- 23. 在Ruby中複製隊列?
- 24. 在Ruby中複製哈希
- 25. 在Ruby中複製SQL行
- 26. 複製大量的臨時表寫入
- 27. 寫入使用Ruby
- 28. Ruby:字符串分支器
- 29. GLSL重寫分支
- 30. 如何在Git中將一個分支複製到另一個分支
在這個問題上有混淆的措辭。分叉和線程是兩個完全不同的東西。如果你把一些基本的骨架代碼放在你想要回答的問題的附近,這將會有所幫助。 –
垃圾收集已成爲Ruby 2.0及更高版本的寫入複製功能。請參閱http://patshaughnessy.net/2012/3/23/why-you-should-be-excited-about-garbage-collection-in-ruby-2-0 – Agis
@FredtheMagicWonderDog修正,謝謝 –