Я пишу простой клиентский сервер в C. Какие преимущества делают многопроцессорный сервер вместо многопоточного?Многопроцессорный сервер или многопоточный сервер?
ответ
На это нельзя ответить на реальность, не зная вашей платформы.
Слухи о том, что запуск новых процессов в Windows чрезвычайно дорог, но запуск новых потоков почти свободен. Поэтому среды Windows предпочитают потоки, если производительность является единственным соображением.
В Linux потоки реализованы в виде немного особых вариантов новых процессов. Они оба свободны. Выбор в зависимости от того, что приведет к лучшему коду в долгосрочной перспективе.
На других платформах потоки могут быть более дорогими или, возможно, не смогут использовать несколько процессоров. На этих платформах выберите процессы.
Конечно, есть не только чистое исполнение. Есть что-то очень приятно о shared-nothing designs - если вы удалите все общие данные из программы, вы резко уменьшите вероятность ошибок в разделах кода, которые одновременно обращаются к этим структурам данных. Кроме того, поскольку процессы не используют временную память, злоумышленник, который компрометирует один процесс, может не иметь возможности управлять другими процессами. (Или, может быть, это будет труднее.) Темы просто позволят злоумышленнику читать все, что захочет.
Преимущества изготовления многопроцессном сервера вместо одного многопоточного:
Защищенное пространство памяти каждого процесса предотвращает нежелательное искажение одной памяти процесса от другого.
Недостатки изготовления многопроцессном сервера вместо одного многопоточного:
Защищенное пространство памяти каждого процесса предотвращает желаемый прямой связи между одним и другим процессом.
Посмотрите на ваши требования, сделайте ваш выбор ..
- 1. Многопроцессорный веб-сервер и многопоточный веб-сервер?
- 2. многопоточный сервер
- 3. Многопоточный сервер в Java
- 4. python скрученный многопоточный сервер
- 5. Многопоточный клиентский сервер
- 6. Python Многопоточный XMLRPC-сервер (?)
- 7. Многопоточный сервер обновлений
- 8. Многопоточный сервер через Arduino
- 9. Многопоточный сервер Java
- 10. Многопоточный сервер в LInux
- 11. Многопоточный эхо-сервер
- 12. Многопоточный эхо-сервер
- 13. Многопоточный многопользовательский чат-сервер
- 14. Многопоточный сервер с AsynchronousServerSocketChannel
- 15. Многопоточный файловый сервер java
- 16. многопоточный веб-сервер Java
- 17. tcp многопоточный сервер java
- 18. Многопоточный сервер Java
- 19. Многопоточный сервер не работает
- 20. многопоточный сервер в python
- 21. Многопроцессорный и многопоточный дизайн
- 22. Многопоточный сервер с общим ресурсом
- 23. Многопоточный сервер, отправляйте данные самостоятельно?
- 24. Python SOAP Service, хороший многопоточный/многопроцессорный способ
- 25. Многопоточный Java Web-сервер - java.net.SocketTimeoutException
- 26. Сетевая проблема! (Многопоточный клиент/сервер)
- 27. Многопоточный UDP-сервер с Netty
- 28. Многопоточный веб-сервер в Python
- 29. Многопоточный TCP-сервер в Python
- 30. Многопоточный сервер Java Socket; Болтаем
После исследования и узнать о процессах и потоках, вам не нужно будет задать этот вопрос. –