Size: a a a

2021 July 02

RM

Roy Mustang in C++ Together 2.0
Планировщик может потоки на другие ядра разве кинуть?
источник

VD

Vlad Doc in C++ Together 2.0
Он может как угодно раскинуть
источник

VD

Vlad Doc in C++ Together 2.0
Хоть все 20 на один поток
источник

RM

Roy Mustang in C++ Together 2.0
SetThreadAffinityMask как раз помогает явно указать какой поток на каком ядре будет выполняться
источник

RM

Roy Mustang in C++ Together 2.0
А каждое ядро может работать независимо
источник

RM

Roy Mustang in C++ Together 2.0
аа я понял
источник

RM

Roy Mustang in C++ Together 2.0
Походу если есть поддержка гипертредов, то можно больше потоков на одном ядре запустить
источник

RM

Roy Mustang in C++ Together 2.0
Только один хер мне вот что непонятно
источник

RM

Roy Mustang in C++ Together 2.0
Я же могу 20 потоков запустить, даже если мое ядро столько не тянет
источник

RM

Roy Mustang in C++ Together 2.0
Каким образом эти потоки тогда вообще умудряются работать?
источник

RM

Roy Mustang in C++ Together 2.0
Если 1 ядро = 2 потока, то мы же все равно может std::thread запустить в большом кол-ве экземпляров
источник

VM

Vladimir M88 in C++ Together 2.0
планировщик процессов в ОС
источник

VD

Vlad Doc in C++ Together 2.0
Как-то люди жили с тысячей тредов на одном ядре
источник

VD

Vlad Doc in C++ Together 2.0
Разделяют время и переключают контекст
источник

RM

Roy Mustang in C++ Together 2.0
Ну вот я не могу уловить связь между потоками в ПО и потоками ядра
источник

VD

Vlad Doc in C++ Together 2.0
Потоки ПО это абстракция над потоками ОС
источник

RM

Roy Mustang in C++ Together 2.0
Над потоками ОС?
источник

VD

Vlad Doc in C++ Together 2.0
ОС уже раскидывает твой говнокод по физ ядрам
источник

VD

Vlad Doc in C++ Together 2.0
Да
источник

RM

Roy Mustang in C++ Together 2.0
Получается, что потоки физического ядра уже изначально используются ОС
источник