Концепция вилки в C # - PullRequest
       3

Концепция вилки в C #

10 голосов
/ 12 октября 2010

Поскольку C # поддерживает многопоточность, есть ли способ реализовать концепцию форка в C #?

Заранее спасибо ....

1 Ответ

18 голосов
/ 12 октября 2010

Это больше вопрос .NET / CLR, чем C #. Как правило, это вопрос операционной системы. Windows не поддерживает fork() -подобную семантику порождения новых процессов. Кроме того, fork() не имеет ничего общего с поддержкой многопоточности.

Семантика fork() включает в себя дублирование содержимого адресного пространства исходного процесса. Мое мнение таково, что это устаревший подход к созданию процессов, и он практически не имеет места в мире Windows, поскольку в нем много проблем с безопасностью и архитектурой операционной системы.

С точки зрения .NET фундаментальная проблема с fork() заключается в подходе к дублированию и / или совместному использованию неуправляемых ресурсов (файловых дескрипторов, объектов синхронизации, оконных дескрипторов (!) И т. Д.) Между старыми и новый процесс. Я думаю, что нет никаких серьезных оснований для введения такой концепции ни в .NET, ни в основную операционную систему Windows.

Для дальнейшего обсуждения см. Ссылку Саураба.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...