LINUX.ORG.RU

История изменений

Исправление slackwarrior, (текущая версия) :

Не на что там смотреть. Если у тебя что-то зависит от порядка пробуждения заданного снаружи — это просто плохой дизаен. Потоки, если ты не играл с приоритетами, часто крутятся операционными системами по банальному раунд робину, отчего может показаться что там есть какой-то порядок но... в числе других процессов — поэтому в общем случае порядок не определен. Всякое упорядочивание типа «Б происходит после А» проще добиться явными сигналами, т.е. посылкой сообщений, барьерами в памяти, логической переменной, семафорами. Или... отдавать задачу из очереди любому свободному воркеру из пула. «Воркер» на то и воркер, что ему обычно пофиг, какую задачу делать. Порядок пробуждения в таком случае не особо важен. Ну и да. Все эти попытки ручного управления порядком обычно ограничивают возможности распараллеливания, т.к. потоки в основном отдыхают на мьютексе.

Исправление slackwarrior, :

Не на что там смотреть. Если у тебя что-то зависит от порядка пробуждения заданного снаружи — это просто плохой дизаен. Потоки, если ты не играл с приоритетами, часто крутятся операционными системами по банальному раунд робину, отчего может показаться что там есть какой-то порядок но... в числе других процессов — поэтому в общем случае порядок не определен. Всякое упорядочиваник типа «Б происходит после А» проще добиться явными сигналами, т.е. посылкой сообщений, барьерами в памяти, логической переменной, семафорами. Или... отдавать задачу из очереди любому свободному воркеру из пула. «Воркер» на то и воркер, что ему обычно пофиг, какую задачу делать. Порядок пробуждения в таком случае не особо важен. Ну и да. Все эти попытки ручного управления порядком обычно ограничивают возможности распараллеливания, т.к. потоки в основном отдыхают на мьютексе.

Исправление slackwarrior, :

Не на что там смотреть. Если у тебя что-то зависит от порядка пробуждения заданного снаружи — это просто плохой дизаен. Потоки, если ты не играл с приоритетами, часто крутятся операционными системами по банальному раунд робину, отчего может показаться что там есть какой-то порядок но... в числе других процессов — поэтому в общем случае порядок не определен. Всякое упорядочиваник типа «Б роисходит после А» проще добиться явными сигналами, т.е. посылкой сообщений, барьерами в памяти, логической переменной, семафорами. Или... отдавать задачу из очереди любому свободному воркеру из пула. «Воркер» на то и воркер, что ему обычно пофиг, какую задачу делать. Порядок пробуждения в таком случае не особо важен. Ну и да. Все эти попытки ручного управления порядком обычно ограничивают возможности распараллеливания, т.к. потоки в основном отдыхают на мьютексе.

Исходная версия slackwarrior, :

Не на что там смотреть. Если у тебя что-то зависит от порядка пробуждения заданного снаружи — это просто плохой дизаен. Потоки, если ты не играл с приоритетами, часто крутятся операционными системами по банальному раунд робину, отчего может показаться что там есть какой-то порядок но... в числе других процессов — поэтому в общем случае порядок не определен. Всякое упорялочиваник типа «Б роисходит после А» проще добиться явными сигналами, т.е. посылкой сообщений, барьерами в памяти, логической переменной, семафорами. Или... отдавать задачу из очереди любому свободному воркеру из пула. «Воркер» на то и воркер, что ему обычно пофиг, какую задачу делать. Порядок пробуждения в таком случае не особо важен. Ну и да. Все эти попытки ручного управления порядком обычно ограничивают возможности распараллеливания, т.к. потоки в основном отдыхают на мьютексе.