только в рамках одного ядра? В смысле если надо загрузить несколько ядер, тогда надо запускать несколько екзешников? Речь идëт про виндовс
Какой тогда от них смысл?))
Увы, в этой теме я ноль 🙁
Можно несколько потоков в рамках одного приложения. Но да, один поток не может занять больше, чем 100% одного ядра. Может мигрировать между ядрами по желанию ОС или програмиста, но всё равно не может существовать на двух ядрах одновременно. На то он и поток — поток инструкций, выполняемых ядром.
А если 20 потоков, то они могут быть и размазанными по ядрам? Отлично!
Да, ты можешь даже явно задать cpu affinity, если у тебя бенчмарк или что-то очень тяжёлое.
Не, это лишнее. Пусть ОС сама принимает решение. Просто раньше всегда многопоточные разработки были быстрыми и незаметными, а тут переписываю одну поделку на многопоточность, т.к. заметил, что один цикл работает двое суток.
поток может на нескольких ядрах работать
Это лишнее. Просто развожу задачку по разным потокам, выстраивая алгоритмы параллельно. Они легко параллелятся. Но спасибо за информацию, не знал, что и поток можно как-то разносить по ядрам
я в своей программе каждый поток на одном ядре запускаю, только основной поток работает как операционка скажет
Потоки могут работать на любом ядре, но если очень хочется, то можно и намертво привязать
Обсуждают сегодня