Что такое «задание» (дочерний процесс) в Windows и когда его использовать? - PullRequest
7 голосов
/ 12 сентября 2009

Использование Process Explorer ( procxp.exe ), особенно в Google Chrome, дочерние процессы называются заданиями. То же самое с Internet Explorer 8, но я заметил это сначала с Chrome.

  1. Что такое Работа
  2. Что я должен знать об этих вещах?
  3. Почему будет ( вы | один ) использовать их?
  4. Какие сценарии их следует использовать?
  5. Какие API используются.

Я знаю, что вопросы немного неуклюжи, пожалуйста, попробуйте и посмотрите мимо этого. Заранее спасибо.

Кстати, я использую WinXP.

Ответы [ 2 ]

8 голосов
/ 12 сентября 2009

Задание в Process Explorer ссылается на Win32 Jobs . Более подробную информацию об этой функции можно найти здесь .

Итак,

1. Что такое работа? Как указано выше.

2. Что я должен знать об этих вещах? Если задание не выполняется или становится нестабильным, все процессы, которыми оно управляет, сразу же становятся нестабильными или аварийно завершают работу.

3. Почему будет ( вы | один ) использовать их? Это интересные инструменты, если мое приложение / система запускает несколько процессов. Я могу централизовать определенные задачи в одной работе и привязать к ней все процессы. Как и грациозно завершать все процессы, управлять их рабочими наборами и т. Д.

4. Какие сценарии должны их использовать? Никогда не делал ничего, используя их. Но, как указано выше. В приложениях или сложных системах, которые запускают несколько процессов. Например, в Chrome (поскольку именно здесь вы видите задание) вполне возможно, что задание управляет каждым процессом, который запускается при открытии новой вкладки.

5. Какие API используются? Win32 API

6 голосов
/ 12 сентября 2009

Объявление 1/2. Задание - это процесс с назначенным объектом задания . Они используются для управления группами процессов. Один объект задания может иметь несколько процессов, но процесс может быть назначен только одному объекту задания. Вы также можете установить несколько ограничений для заданий, задокументированных здесь .

Ad 5. CreateJobObject , AssignProcessToJobObject , SetInformationJobObject , TerminateJobObject и еще несколько, перечисленных здесь .

...