Вопрос

Другими словами, что делает преимущества Гибридная резьба Есть более 1: 1 (только ядро) и n: 1 (только пользователь) поток?

Это продолжение В чем разница между потоками на уровне пользователя и потоками уровня ядра?

Это было полезно?

Решение

Я думаю, что гибридное резьмовое оборудование очень похоже на Тренажный бассейн.

В пуле потоков вы используете потоки $ n $ kernel для выполнения $ m $ «задачи», где $ m $ может быть намного выше, чем $ n $. Преимущество по сравнению с использованием одного потока для каждой задачи (только потоки ядра) состоит в том, что вы потребляете меньше ресурсов, таких как память (как виртуальные, так и физические) и объекты ядра (по крайней мере, в конкретном случае потоков Windows, но я представляю другие OSES похожи в этом отношении). Вы также получаете меньше контекстных переключателей, что повышает производительность (в идеальном случае, где у вас есть столько запущенных потоков, сколько у вас есть процессоры, у вас может быть почти никаких контекстных переключателей).

Преимущество по сравнению с потоком пользователей состоит в том, что вы можете воспользоваться несколькими процессорами или нескольких ядер ЦП. И если одна задача блокирует, вы можете создать еще один поток ядра, чтобы более эффективно использовать доступный процессор.

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

Недостатком по сравнению с расписанием только ядра, возможно, является большая задержка: если все потоки в бассейне заняты, и вы добавляете новую короткую задачу, вы можете подождать долгое время, прежде чем он начнет выполнять.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с cs.stackexchange
scroll top