Как я понял, если компьютер многоядерный, то можно направить поток в другое ядро ( или как-то так, не обессудьте).
1) Это увеличивает производительность? Если да, то кратно ли кол-во ядер?
2) Каким образом программа узнает, в какое ядро мы говорим ей топать, если их, допустим, 4? Ведь пишется просто sleep, то есть лишь приостанавливает один поток, а не задаётся направление.
Другие языки программирования и технологии
Объясните, пожалуйста, что такое и как работает многопоточность?
1. Как ты думаешь, если над задачей работает не одно ядро, а два, это увеличивает производительность? Смотря как реализована многопоточность и с какой задачей. В целом конечно может быть кратно количеству ядер.
2. Распределением потоков занимается операционная система. При чём тут Sleep, я вообще не понял. Он лишь делает паузу в алгоритме, но ядро при этом не блокируется.
3. Многопоточность нужна не только для того, чтобы распределять между ядрами. Иногда требуется параллельность.
2. Распределением потоков занимается операционная система. При чём тут Sleep, я вообще не понял. Он лишь делает паузу в алгоритме, но ядро при этом не блокируется.
3. Многопоточность нужна не только для того, чтобы распределять между ядрами. Иногда требуется параллельность.
Евгений Науменко
Решил с ботом пообщаться?
Не только. И на одном ядре можно реализовать. Запустить пару десятков дочерних потоков, которые будут потреблять больше процессорного времени, и в итоге программа станет работать быстрее. Полезно запускать затратный по времени алгоритм в отдельном потоке, чтобы у пользователя не "зависал" его графический интерфейс. Поэтому не надо путать параллельные вычисления с многопоточностью.
Дима Джалилов
А один поток не может потреблять всё процессорное время? Зачем запускать десяток?
нет . вы если частник у вас денег не хватит просто..
Многопоточность - это не магия, которая линейно ускоряет работу программы, а ручное распределение большой задачи на список мелких, которые выполняются отдельными потоками, на уровне кода программы. За распределение потоков-"рабочих" между виртуальными ядрами отвечает ОС. Почти все исполнения многопоточности не идеальны и их нельзя бесконечно расширять, пока прирост производительности не превысит оверхед лишних вычислений.
И да, даже если программа не умеет работать на нескольких ядрах, задачи обычно откладываются в отдельные потоки, чтобы во время некоторых задач с программой все еще можно было взаимодействовать.
И да, даже если программа не умеет работать на нескольких ядрах, задачи обычно откладываются в отдельные потоки, чтобы во время некоторых задач с программой все еще можно было взаимодействовать.
Похожие вопросы
- Объясните пожалуйста как работает компилятор.
- объясните пожалуйста как работать с циклами с предусловием, с постусловием, с параметром
- объясните пожалуйста, по какому принципу работает Паскаль, на более простом и понятном языке?!
- Что такое RSS? объясните пожалуйста, что он делает и как работает! спасибо!
- Для чего нужен указатель this и каков его принцип работы? Объясните пожалуйста самым простым языком, как 2+2.
- Объясните пожалуйста вот этот алгоритм в Free Pascal
- Турбо Паскаль. Объясните пожалуйста
- У Оли есть доступ к сети Интернет по высокоскоростному одностороннему радиоканалу.. . (Объясните пожалуйста как решать)
- Объясните пожалуйста, что такое Объектно ориентированное программирование?
- Объясните, пожалуйста, что за "много действий"? Нажать на кнопку "Подписаться" - это много действий?