среда: Linux
язык: C
Если у меня есть серверный и клиентский процессы.
сервер использует сокет для связи с клиентом.
В процессе сервера он имеет два потока (поток 1, поток 2).
(поток 1 и поток 2 используют один и тот же файловый дескриптор для связи с клиентом).
В клиентском процессе это всего лишь один поток.
Я исключил
сервер:
thread 1:
send message A.1 to client
recv message A.2 from client
thread 2:
send message B.1 to client
recv message B.2 from client
но многопоточность возможно произошло переключение контекста
сервер:
thread 1:
send message A.1 to client
context switch
thread 2:
send message B.1 to client
recv message A.2 from client
context switch
thread 1:
recv message B.2 from client
как избежать получения потока 2 recv A.2 от клиента??
Могу ли я предотвратить переключение контекста до сообщения потока 1 recv A.2?