Вы можете смоделировать это как производитель / потребитель, где каждый поток внедряет сообщения в TCPSender
, когда они готовы, а TCPSender
поддерживает очередь сообщений FIFO. Вставки в очередь будут заблокированы (в пределах TCPSender
) и обработаны по порядку.
Был бы другой поток, который потребляет сообщений, когда очередь не пуста, блокируя каждый раз, когда сообщение удаляется из очереди.
Двумя непосредственными преимуществами является то, что вы можете поддерживать произвольное количество производителей, и блокировка ограничивается вставкой в очередь, а не фактической отправкой сообщений (то есть с точки зрения производителя).