Вопрос о многопоточности. Скажем, у меня есть 3 потока, основной, child1 и child2. Происходит ли процесс, выполняющий эти потоки, в том порядке, в котором он работает в одном потоке в течение короткого промежутка времени, затем работает на другом, и так далее и вперед, и продолжает переключать, или это потоки, которые никогда не останавливаются обработать? Где-то я читал, что поток останавливается без финиша, затем обрабатывается и останавливается другой поток, затем обратно в thread1 и т. Д. Дальше, но это не имеет никакого смысла, если какие-либо потоки будут остановлены, поскольку точка mutlithreading - это то, что они все одновременно и все работают одновременно, но как процессор делает это?Выполняет ли процесс выполнение потоков в последовательном порядке?
Это в .Net/C#.
Слишком широкая и/или вне темы, но в основном в одноядерной системе O/S приостанавливает поток и запускает другой, если он работает в течение 10-15 миллисекунд (в Windows), не вызывая ничего, например, I/O, который дает. В многоядерных системах потоки могут работать по-настоящему параллельно. –
Задача операционной системы - запустить множество потоков на нескольких процессорных ядрах. Что он делает, если необходимо, путем прерывания текущего потока, чтобы позволить другому использовать процессор. Это не отличается для кода C#. –