Почему у нас есть ограничение ядра / потока на процессоре? - PullRequest
0 голосов
/ 26 апреля 2018

С точки зрения программирования многопоточной среды, когда мы запускаем многопоточное приложение, процессор переключается между потоками. Мы можем создавать и запускать тысячи потоков параллельно.

Я не понимаю, почему у нас есть ограничение ядра / потока на одном процессоре, который в реальном случае не работает параллельно, а просто быстро переключается между потоками для запуска, тогда почему у нас 8-ядерный / 16-потоковый ЦП ?

1 Ответ

0 голосов
/ 26 апреля 2018

Воспользуемся аналогией

"Я управляю отелем, в котором гости переключаются между комнатами. Я могу разместить сотни гостей параллельно. Один гость покидает комнату, другой входит в нее. Если комнаты переполнены, гости ждут в холле, но я быстро поменяйте их, чтобы каждый гость получил время в комнате.

Тогда я не понимаю, почему у меня есть ограничение по количеству номеров в здании моего отеля. Я имею в виду, что я быстро переключаю гостей между комнатами, тогда почему в моем здании 8 комнат / 16 кроватей? "

hotel = CPU
room = CPU core
bed = CPU thread
guest = software thread
...