Синхронизация сокета send ()

Хорошо, так что в основном у меня есть 3 темы.

Каждый из них использует функцию, которая внутри использует send () для определенного сокета (назовем его S).
Вот маленький дизайн:

http://i.imgur.com/5N744.png

Как бы я синхронизировал S-сокет таким образом, чтобы send () вызывался один за другим в очереди вместо потоков, одновременно обращающихся к сокету?

2

Решение

Во-первых, почему бы не иметь фактический очередь данных для отправки и выделенного потока ввода-вывода, извлекающего из него элементы и записывающего в сокет?

Затем, если вы используете обычную семантику блокирующих сокетов, вы можете просто записывать в один и тот же сокет одновременно все три потока — ядро ​​обеспечит необходимую блокировку на уровне системных вызовов.

4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]