Страницы

Поиск по вопросам

пятница, 14 февраля 2020 г.

Методы класса Parallel

#c_sharp #net


Рихтер пишет:


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


Немного не понимаю, что имеется ввиду тут...

Разве при вызове методов Parallel мы все таки не блокируем поток? Если я не ошибаюсь,
то выполнение кода потока вызова не идет дальше пока не выполнится какой-нибудь параллельный
метод.

Или я что-то не так понимаю?
    


Ответы

Ответ 1



Судя по всему, это неточность перевода. Думаю, имеется в виду, что функции класса Parallel разделяют работу на несколько потоков, и одним из рабочих потоков становится тот поток, в котором функция была вызвана. Тем самым вызывающий поток не простаивает вхолостую в ожидании результата, а тоже принимает участие в работе. Спасибо @rdorn, который нашёл текст оригинала: All of Parallel’s methods have the calling thread participate in the processing of the work, which is good in terms of resource usage because we wouldn’t want the calling thread to just suspend itself while waiting for thread pool threads to do all the work. Это можно перевести так Во всех методах класса Parallel вызывающий поток тоже принимает участие в работе. Это хорошо с точки зрения использования ресурсов, так как вызывающий поток не простаивает, ожидая выполнения работы потоками пула.

Комментариев нет:

Отправить комментарий