Task vs Thread в рамках C#

Разобрал важную тему в рамках многопоточного программирования: Thread vs Task. Thread - это низкоуровневый API который нужен для работы с потоками. Есть какая-то задача которую нужно выполнить в отдельном потоке, в этом случае может помочь Thread, но тут есть проблема, что при каждом выполнении метода нужно будет создавать отдельный поток, а это очень дорогая операция, поэтому создали ThreadPool с которым работает как раз Task. Task - это абстракция над Thread которая имеет более обширный функционал, главное преимущество над Thread - это наличие ThreadPool, в ThreadPool сразу выделяется какое-то количество потоков, которые потом будут браться оттуда по мере необходимости, а когда работа завершиться, то они вернуться обратно и будут ждать ожидания. Так же Task можно использовать с асинхронными операциями. Ну ещё Task возвращает значение. В некоторых моментах Thread будет использовать предпочтительнее: - Нам нужна задача, работающая в режиме Foreground. - Нам нужно создать поток с определенным приоритетом. - Задача должна долго выполняться в рамках одного потока. Полный разбор многопоточности есть на Boosty, видео пополняются, уже разбираю примитивы синхронизаций. Ссылка на Boosty: https://boosty.to/ithomester Ссылка на Telegram: https://t.me/ith0omester

Иконка канала xWizard70
142 подписчика
12+
2 просмотра
11 дней назад
12+
2 просмотра
11 дней назад

Разобрал важную тему в рамках многопоточного программирования: Thread vs Task. Thread - это низкоуровневый API который нужен для работы с потоками. Есть какая-то задача которую нужно выполнить в отдельном потоке, в этом случае может помочь Thread, но тут есть проблема, что при каждом выполнении метода нужно будет создавать отдельный поток, а это очень дорогая операция, поэтому создали ThreadPool с которым работает как раз Task. Task - это абстракция над Thread которая имеет более обширный функционал, главное преимущество над Thread - это наличие ThreadPool, в ThreadPool сразу выделяется какое-то количество потоков, которые потом будут браться оттуда по мере необходимости, а когда работа завершиться, то они вернуться обратно и будут ждать ожидания. Так же Task можно использовать с асинхронными операциями. Ну ещё Task возвращает значение. В некоторых моментах Thread будет использовать предпочтительнее: - Нам нужна задача, работающая в режиме Foreground. - Нам нужно создать поток с определенным приоритетом. - Задача должна долго выполняться в рамках одного потока. Полный разбор многопоточности есть на Boosty, видео пополняются, уже разбираю примитивы синхронизаций. Ссылка на Boosty: https://boosty.to/ithomester Ссылка на Telegram: https://t.me/ith0omester

, чтобы оставлять комментарии