Есть ли какие-то конкретные проблемы, связанные с переключением контекста? - PullRequest
0 голосов
/ 06 ноября 2019

Книга Clean Code Боба Мартина содержит следующее правило о параллельном программировании:

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

Я рассматривал такие приятные моменты параллелизма, как взаимоблокировки, условия гонки и т. Д. ... чтобы быть характеристикой параллелизма как такового, независимо от того, управляются ли наши потоки одним ядром (с переключением) или несколькими.

Так в чем же смысл правила? Это просто какая-то эвристика? Какие конкретные проблемы связаны с переключением контекста? (Я знаю, что переключение контекста вызывает бремя накладных расходов, но разве это не совет по этому поводу?).

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