Многие процессы выполняются одним потоком - PullRequest
1 голос
/ 02 июня 2011

Возможно что-то вроде следующего в C на платформе Linux: у меня есть поток, говорящий «Системные вызовы чтения» (перехват системных вызовов), выполняемые процессами приложения.Для каждого процесса A создает поток, который выполняет требуемый системный вызов и затем спит, пока A не разбудит его другим системным вызовом, который был сделан соответствующим процессом приложения.Когда процесс завершается, его рабочий поток перестает существовать.

Таким образом, это как ряд процессов, конвертируемых в поток, который затем разветвляется на множество потоков с одним потоком на процесс.

Спасибо

1 Ответ

0 голосов
/ 02 июня 2011

Если вы ищете какую-то реализацию пула потоков и строго не ограничены CI, рекомендуем threadpool (что почти как Boost).Это простой в использовании и довольно худой.Единственная логика, которая вам сейчас нужна, - это перехват системного события, а затем создание нового потока задач, который будет выполнять вызов.Пул потоков будет отслеживать все созданные потоки и автоматически назначать работу потокам.

РЕДАКТИРОВАТЬ

Поскольку вы ограничены C, попробуйте эту реализацию .Это выглядит довольно полным и довольно простым, но в основном это сделает работу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...