Что такое потоки, и что они делают в процессоре?

Я смотрел статистику для процессора Intel Pentium e5700 .

Он имеет два ядра и два потока. Что делают потоки для процессора? Существует ли какое-либо отношение между количеством ядер и количеством потоков? Какую цель выполняют потоки для всей системы?

2 Solutions collect form web for “Что такое потоки, и что они делают в процессоре?”

Ядром подсчета является физическое число ядер на самой матрице процессора, тогда как количество потоков – это количество отдельных потоков приложений, которые могут выполняться одновременно на самом процессоре. Без какого-либо дополнительного или специального оборудования это всегда совпадает с подсчетом ядра.

Некоторые процессоры Intel имеют функцию hyperthreading , которая позволяет операционной системе видеть вдвое больше логических ядер на физическое ядро. Это позволяет операционной системе планировать и запускать вдвое большее количество потоков одновременно, поэтому в случае с процессором I, связанным с ним, есть четыре физических ядра, но восемь логических (так что вы можете одновременно запускать восемь потоков).

Каждое отдельное приложение, работающее в операционной системе, является однопоточным или многопоточным (подумайте о каждом потоке как о «под-приложении»). Для однопоточных приложений требуется только один поток для работы на процессоре, тогда как многопоточные приложения имеют много подпотоков, работающих одновременно. Дополнительные ядра или гиперпотоки позволяют одновременно запускать несколько потоков приложений.

Это позволяет многопоточным ( не однопоточным) приложениям работать намного быстрее, поскольку более одного потока может одновременно запускаться на CPU.


Как раз последнее замечание, hyperthreading улучшает производительность некоторых многопоточных приложений, специально оптимизированных для него (поскольку число физических ядер остается только вдвое меньше, чем логически). В некоторых случаях приложения могут работать быстрее при отключенной гиперпотоке (хотя многие приложения извлекают из этого выгоду). Независимо от гиперпоточности, увеличение количества физических ядер всегда будет полезно для многопоточных приложений.

«Ядро» представляет собой фактическое физическое подмножество процессора, который сам по себе может обрабатывать обработку, тогда как «поток» – это количество фактических процессов, которые процессор может обрабатывать сразу. Intel разработала технологию, на которую они наклеивают «гиперпоточность», этот метод позволяет одному физическому ядру (который обычно может обрабатывать только один поток за раз), чтобы теперь иметь возможность обрабатывать два потока одновременно.

Поток – это задача, которую процессор должен обрабатывать, для простого объяснения вы можете предположить, что каждое приложение, которое вы открываете (например, краска, блокнот, медиаплеер) имеет свой собственный поток … теперь это не означает, что вы можете открывать 2 приложения сразу, просто потому, что процессор и ОС работают так быстро при «переключении потоков», чтобы обрабатывать потребности каждого приложения, которое вы открыли. Вы просто испытаете лучшую производительность с большим количеством ядер, потому что теперь вы можете выложить всю работу на более основные процессоры.

Например, мой рабочий компьютер имеет i7. I7 имеет 4 физических ядра, но каждое ядро ​​может выполнять «гиперпоточность», что позволяет процессору обрабатывать 8 потоков одновременно. Поэтому, если я открою диспетчер задач, я увижу 8 ящиков для масштабирования производительности процессора.

Общее правило заключается в том, что больше физических ядер лучше, чем больше потоков. Поэтому, если бы вы сравнивали процессоры с 4 ядрами и 4 потоками, было бы лучше, чем 2 ядра 4 потока. Но чем больше потоков будет обрабатывать ваш процессор, тем лучше он будет работать во время многозадачности и для некоторых очень интенсивных приложений (видеоредактирование, САПР, CAM, сжатие, шифрование и т. Д.) Само по себе будет использовать более одного ядра за раз.

Interesting Posts

Почему Windows 7 не просыпается?

Есть ли причина в производительности для объявления параметров метода final в Java?

Как я могу отлаживать javascript на Android?

Передача портов туннелирования ssh

Как изменить приложение ROOT?

Обрезание круговой области из растрового изображения в Android

Как вернуть контекстное меню Google Chrome обратно в стиль Windows

Как установить grub в файл .img?

Как я могу убедиться, что Git не спрашивает у меня имя пользователя и пароль GitHub?

Какие общие алгоритмы используются для rand ()?

Как жесткий диск сравнивается с флэш-памятью, работающей как жесткий диск с точки зрения скорости?

Получение «неожиданно закрытого сетевого подключения к серверу»

Создание комбинаций Ctrl + Alt после переключения ключей с помощью Autohotkey

Построить несколько столбцов на одном и том же графе в R

Почему размер папки (в свойствах) отличается от общего размера файлов / папок в папке?

Давайте будем гением компьютера.