Ответ 1
Есть много примеров, включенных в дистрибутив и доступных на github:
https://github.com/krakjoe/pthreads/tree/master/examples
Эти примеры включают такие вещи, как пул потоков общего назначения, многопоточный сервер сокетов и SQLWorker.
Созданные потоки pthreads являются нормальными и безопасными, поскольку потоки, которые Zend сам настраивает для запросов на обслуживание через многопоточную SAPI. Они совместимы со всеми теми же функциональными возможностями, плюс все, что вы ожидаете от API нитей высокого уровня (почти).
Всегда будут существовать ограничения на реализацию потоков в недрах архитектуры общего ничего, но преимущества с точки зрения использования лучших физических ресурсов в вашем распоряжении, а также общее удобство использования PHP для любой заданной задачи намного перевешивают накладные расходы на работу вокруг этой среды.
Объекты, включенные в pthreads, работают как и любой другой объект PHP, вы можете читать, записывать и выполнять свои методы из любого контекста с ссылкой на объект.
Вы думаете точно по правильной линии: показатель эффективности не в количестве потоков, выполняемых вашим приложением, а в том, как эти потоки используются, чтобы наилучшим образом служить основной цели приложения. Рабочие - хорошая идея, где бы вы их ни использовали, сделайте это.
Что касается конкретных вещей, о которых вы просили, LoggingWorker - хорошая идея и будет работать, не пытайтесь обмениваться этим потоком, так как нет смысла, он будет абсолютно стабильным, если Worker откроет файл журнала или соединение с базой данных и выполняемые ею стеки, могут обращаться к ним. SQLWorker включен в примеры, опять же, еще одна хорошая идея, когда API не имеет достойного асинхронного API, или вы просто предпочитаете поток многопоточного программирования.
Вы не получите лучшего или более правильного ответа: я написал pthreads самостоятельно.