C中的叉子概念#
回答
這更是一個比C#.NET/CLR的事情。通常,這是底層操作系統的問題。 Windows不支持產生新進程的類似於語義的fork()
。另外,fork()
與多線程支持無關。
fork()
的語義涉及複製原始進程的地址空間的內容。我的觀點是這是一個過時的過程創建方法,在Windows世界中幾乎沒有任何空間,因爲它涉及到很多安全和操作系統架構問題。
從.NET的角度來看,fork()
的基本問題將是複製和/或共享非託管資源(文件句柄,同步對象,窗口句柄(!)等)新的過程。我認爲沒有理由將這種概念引入.NET或底層的Windows操作系統。
有關進一步討論,請參見saurabh的鏈接。
我能想到的一個嚴重的原因是處理死鎖(線程分叉)。這是一個先進的想法。但是,推送和彈出線程狀態(分叉和休眠新線程)以及被鎖定對象的版本控制可能允許您在死鎖可能出現之前彈出。 (注意:死鎖可以防止數據損壞......你可以讓它們都去,但數據不會獨佔鎖定 - 即使一次只運行一個線程)。這給了我們非死鎖的原子對象(甚至數據庫死鎖)。這是一個嚴重的原因。 – TamusJRoyce 2012-08-04 05:02:54
請注意,'fork'實際上不會在.NET上提供任何所需的效果。 'fork'在多線程應用程序中運行不好,它會導致所有其他線程被終止。由於至少有一個GC線程正在運行,因此每個定義的.NET應用程序都是多線程的。 – Sebazzz 2017-09-13 12:25:00
- 1. 子域概念
- 2. C++概念:CRTP
- 3. C#3.0中的概念
- 4. C++多態概念
- 5. jdbctemplate概念和c#
- 6. 硒和c#概念
- 7. C指針概念
- 8. C程序概念
- 9. C++概念循環
- 10. Git:叉/遠程/克隆概念
- 11. 回調的概念(C#)
- 12. 簡單的Objective-C概念
- 13. C++的模塊概念
- 14. sqlite概念到coredata的概念?
- 15. Solr:子查詢概念
- 16. Winforms中的主子頁面概念
- 17. Actionscript-Javascript中的C++指針的概念
- 18. C++中的虛函數的概念
- 19. 接口在C#中的概念
- 20. C中的類型聲明(概念)
- 21. C++ Concepts Lite:概念體中的短路
- 22. C語言中的線程概念#
- 23. C中函數指針的概念?
- 24. C++概念和std :: cout
- 25. C基本編程概念
- 26. C++程序線程概念
- 27. C預處理器概念
- 28. C CLI遊戲概念
- 29. C++類:概念類Doppelganger:LNK2005
- 30. 序列化概念-java,c#,
就像在UNIX命令fork?在那種情況下,沒有。 – 2010-10-12 09:21:34