2013-09-01 5 views
-5

У меня есть очень простой вопрос в моей теме о многопоточности. Если мы запустим 10 потоков за один раз, так что в одном экземпляре будет активен только один поток, и произойдет переключение между потоками или более чем один поток может работать на один экземпляр времени?Как работает многопоточность

+5

Можете ли вы перефразировать это? Сейчас это практически не имеет смысла. Также, пожалуйста, покажите, какие исследования вы сделали. Это не ваш научный сотрудник. – Gray

+0

Если вы посмотрели конфигурацию CPU, вы увидите что-то вроде 4 Thread 2 Core. Это означает, что 4 потока во времени. Я считаю, что если вы запустите больше, чем 4 потока за раз, то это будет отложено в CLR. – Adrian

+0

Прочтите этот http://superuser.com/questions/329904/what-are-threads-and-what-do-they-do-in-the-processor Если ваш процессор ограничен 4 потоками, тогда он не будет работать больше, чем 4 потока за один раз. – Adrian

ответ

0

Это зависит как от вашего оборудования, так и от вашей операционной системы. Если у вас меньше ядер, чем потоки, то ОС, вероятно, будет чередовать эти потоки, то есть каждый раз, когда один из них выполняет, например, операцию ввода-вывода, или каждый раз, когда он заканчивает свой временной срез, он переключается на другой поток.

Кроме того, каждое ядро ​​запускает один поток выполнения. Для этого нужны несколько ядер. Обычно это смешивается с поведением времени.

0

Это действительно зависит от вашего процессора и дизайна программы. Если у вас есть четырехъядерный ПК, вы можете запустить 8 потоков одновременно.

+0

Это ответ может ввести в заблуждение. Я предполагаю, что вы говорите о технологии Intel Hyper-Threading. В этом случае вы должны прочитать следующее: http://www.makeuseof.com/tag/hyperthreading-technology-explained/ – Andy

0

Это зависит от оборудования. Многие современные процессорные чипы включают в себя более одного процессора, и процессор сам может иметь возможность чередовать несколько потоков. У большого сервера могут быть десятки процессорных чипов. В такой системе все 10 потоков могут работать по-настоящему одновременно.

+0

Один процессор (ядро) может даже запускать больше, чем несколько потоков, в зависимости от типа. Рассмотрим процессор UltraSPARC T2, который, например, запускает 8 потоков на процессорное ядро. – Jules

0

только один поток запускается одновременно. Процессор быстро переключает их. например, для рассмотреть текстовый редактор с заклинанием КАМИ ..

у типа-то будет один поток прог CHKS фр errors- вот еще один поток

теперь, если они многопоточные, весь процесс будет получить место в памяти а затем различные потоки будут выполняться одновременно