Сообщение Re[10]: много Thread или ThreadPool от 23.02.2018 18:17
Изменено 23.02.2018 18:21 alexsoff
Re[10]: много Thread или ThreadPool
Здравствуйте, RushDevion, Вы писали:
RD>Тред-пул устроен как.
RD>Доходит до semaphore.Wait() и встает в состояние WaitSleepJoin.
Я о случае когда задач на обработку нет и в semaphore.Wait не вызывается.
Т.е. все созданные задачи через StartNew завершились и в очереди нет новых задач. Логично же предположить, что сработает механизм "сборки" долговременно не активных потоков.
RD>Тред-пул устроен как.
RD>Доходит до semaphore.Wait() и встает в состояние WaitSleepJoin.
Я о случае когда задач на обработку нет и в semaphore.Wait не вызывается.
Т.е. все созданные задачи через StartNew завершились и в очереди нет новых задач. Логично же предположить, что сработает механизм "сборки" долговременно не активных потоков.
Re[10]: много Thread или ThreadPool
Здравствуйте, RushDevion, Вы писали:
RD>Тред-пул устроен как.
RD>Доходит до semaphore.Wait() и встает в состояние WaitSleepJoin.
Я о случае когда задач на обработку нет и в semaphore.Wait не вызывается.
Т.е. все созданные задачи через StartNew завершились и в очереди нет новых задач. Логично же предположить, что сработает механизм "сборки" долговременно не активных потоков.
Вот нашел подтверждение своих слов с msdn
RD>Тред-пул устроен как.
RD>Доходит до semaphore.Wait() и встает в состояние WaitSleepJoin.
Я о случае когда задач на обработку нет и в semaphore.Wait не вызывается.
Т.е. все созданные задачи через StartNew завершились и в очереди нет новых задач. Логично же предположить, что сработает механизм "сборки" долговременно не активных потоков.
Вот нашел подтверждение своих слов с msdn
Beginning with the net_v40_short, the thread pool creates and destroys worker threads in order to optimize throughput, which is defined as the number of tasks that complete per unit of time