Что такое рабочий поток и его различие от потока, который я создаю?

Безопасный путь состоит в том, чтобы использовать mkstemp (3) .

26
задан skaffman 6 October 2009 в 08:52
поделиться

2 ответа

Обычно термин рабочий поток используется для описания другого потока, отличного от того, который выполняет работу в текущем потоке, который во многих случаях является потоком переднего плана или потоком пользовательского интерфейса. Тем не менее, это не является камнем преткновения.

Программы Windows обычно используют один основной поток для управления пользовательским интерфейсом, и это, как правило, синхронно (т.е. все выполняется одно за другим). Если необходимо выполнить длительную задачу, чтобы избежать создания блока пользовательского интерфейса в таких программах, вы используете рабочий поток (который может быть либо потоком переднего плана, либо фоновым потоком) для выполнения работы (асинхронно с основным потоком) , а затем представить результаты обратно в основной поток для использования.

В программах Windows это делается через сообщения. Если вы используете определенные библиотеки, например, .NET framework, тогда доступны специальные служебные классы, такие как ThreadPool и BackgroundWorker, чтобы упростить обработку фонового или рабочего потока. Но, как всегда, вы можете использовать примитивы платформы для достижения той же цели.

26
ответ дан 28 November 2019 в 07:04
поделиться

Я не могу придумать большой технической разницы, кроме простой терминологии.

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

Для ваших целей: Постоянный мониторинг БД необходим для определения обновленных / новых значений. Это может быть просто поток, всегда работающий в фоновом режиме, периодически пробуждающийся и обновляющий значения в пользовательском интерфейсе из БД.

9
ответ дан 28 November 2019 в 07:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: