предположим, что у нас есть приложение, которое использует winsock для реализации TCP-соединения. для каждого сокета создаем поток и блокируем на нем прием. когда данные поступают, мы хотели бы уведомить другие потоки (слушающие потоки).
мне было интересно, как лучше всего реализовать это:
отойти от этого дизайна и использовать неблокирующий сокет, тогда поток прослушивания должен будет постоянно выполнять итерацию и вызывать неблокирующий прием, что делает его потокобезопасным (без дополнительных потоков для сокетов)
используйте асинхронные вызовы процедур, чтобы уведомить потоки прослушивания, которые снова должны будут предупреждать и ждать, пока apc поставит их в очередь.
реализовать некоторую потокобезопасную очередь сообщений, где каждый поток сокета будет отправлять в него сообщения, а слушатель, опять же, будет проходить через него каждый интервал и извлекать из него данные.
также я читал о WSAAsyncSelect, но я видел, что это используется для отправки сообщений в окно. нет ли чего-то подобного для других тем? (ну, я думаю, БТР...)
Спасибо!