Использование потоков в процессоре для .Net приложений - PullRequest
1 голос
/ 26 июня 2019

Привет, я читаю о темах и IIS.И сказано, что каждый запрос выполняется потоком на процессоре.И каждый логический процессор может иметь один поток.Я попробовал это.Мой компьютер имеет 4 логических процессора, и я запускаю консольное приложение, которое создало 4 задачи с этим кодом.

        Task raskRun1 = new Task(() => run1());
        raskRun1.Start();

        Task raskRun2 = new Task(() => run2());
        raskRun2.Start();

        Task raskRun3 = new Task(() => run3());
        raskRun3.Start();

        Task raskRun4 = new Task(() => run4());
        raskRun4.Start();

И у каждого есть эта реализация.

    public static void run1()
    {
        for (int i = 0; i < 500; i++)
        {
            Console.WriteLine("1" + i.ToString());
            Thread.Sleep(1000);
        }

    }

То, что я ожидаю, это при запуске этого приложения.Я не могу загрузить свое веб-приложение.Но это загрузка.

Я знаю, что мои мысли ошибочны, но не могли бы вы немного объяснить этот случай, пожалуйста?

1 Ответ

1 голос
/ 26 июня 2019

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

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

Длина временного интервала зависит от операционной системы и процессора. Поскольку каждый временной интервал мал (примерно 20 миллисекунд), кажется, что одновременно выполняется несколько потоков.

Многозадачность

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...