Как темы пользовательского уровня лучше, чем последовательный процесс? - PullRequest
4 голосов
/ 18 марта 2011

Какая польза от потоков пользовательского уровня?Я читал статьи о том, что потоки уровня пользователя быстрее потоков уровня ядра.Потоки пользовательского уровня не являются приоритетными, и блокировка одного потока пользовательского уровня блокирует все другие потоки пользовательского уровня в процессе.

Это означает, что не может быть ситуации, когда один поток пользовательского уровня выполняетIO и другой поток пользовательского уровня выполняется.Кроме того, поскольку управление потоком зависит от потока пользовательского уровня, потоки пользовательского уровня также нельзя использовать для графического интерфейса пользователя.

Вопрос: чем потоки пользовательского уровня лучше, чем последовательный процесс?

Ответы [ 2 ]

3 голосов
/ 18 марта 2011

Обычно вы используете потоки пользовательского уровня с циклом событий, так что другие потоки пользовательского уровня могут продолжить выполнение, пока один ожидает данных: планировщик потока опрашивает зарегистрированные файловые дескрипторы на готовность, когда поток уступает, и обычно устанавливает приоритетыпоток (ы), для которых вход готов.Между тем, неавтоматический выход имеет большое преимущество: вам часто не нужно беспокоиться о параллельном доступе к структурам данных (если программист не глуп и не уступает в середине того, что должно быть атомарной операцией по отношению к другим потокам).Это означает меньшую потребность (часто не нужную) в синхронизации и блокировке, поэтому потоки уровня пользователя часто выигрывают над потоками ядра: гораздо меньше накладных расходов.А когда необходима синхронизация , она часто дешевле, чем с потоками ядра.

2 голосов
/ 18 марта 2011

Одно возможное преимущество: организация дизайна / кода. Используя конструкцию Thread, мы проясняем независимые части обработки и места, в которых они должны взаимодействовать.

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