Если у вас есть набор каналов / сокетов, ожидающих чтения / записи, epoll () или select () могут использоваться для ожидания всех из них, пока хотя бы один из них не будет готов для чтения / записи.
Есть ли что-нибудь похожее для потоков / pthreads? Самое близкое, что у меня есть, это создание спящего потока путем блокировки блокировки () для мьютексов. Однако для каждой блокировки это стоит потока.
Я также думал об использовании труб вместо этих замков, но это также кажется неэффективным, и число каналов, по-видимому, ограничено примерно 500 трубами (по крайней мере, это немного больше, чем потоков).
Так что, да, есть ли лучшие решения, чем использование потоков для ожидания мьютексов для разблокировки?