В Linux, если два потока созданы и оба работают, когда один из них вызывает recv()
или любой системный вызов ввода-вывода, который блокирует, когда нет доступных данных, что произойдет со всем процессом?
Будет ли блокировать другой поток? Полагаю, это зависит от того, как реализована многопоточность. Если библиотека потоков находится в пользовательском пространстве, а ядро полностью не знает о потоках внутри процесса, тогда процесс является объектом планирования, и поэтому оба потока заблокированы.
Далее, если другой поток не блокирует из-за этого , может ли он send()
передавать данные через тот же сокет, который блокирует поток recv
? Дуплексный
Есть идеи?