LINUX.ORG.RU

Are BSD sockets thread-safe?


0

1

Являются ли sockets под Linux - поточно-безопасными?
То есть, не приведёт ли к глюкам сокета одновременный read/write из разных pthreads?

★★★★★

Последнее исправление: pacify (всего исправлений: 3)

В каких случаях для сокетов надо использовать mutex'и?

pacify ★★★★★
() автор топика

но я как-то не вижу большого смысла писать/читать одновременно один сокет из нескольких потоков без блокировки. Заранее ведь неизвестно, в каком количестве и в каком порядке будут происходить операции чтения-записи. Если только не UDP

Harald ★★★★★
()
Ответ на: комментарий от Harald

Are the BSD sockets thread-safe?

Сорри, первым языком у меня был немецкий. Грамматику русского нам по-толковому не объяснили. Не было мотивации серьезно изучать грамматику иностранных языков. (способы построения предложений и т.п.).

pacify ★★★★★
() автор топика
Ответ на: комментарий от Harald

но я как-то не вижу большого смысла писать/читать
одновременно один сокет из нескольких потоков без блокировки.

Надо написать простейший пинг-понг. Старые исходники потерял.

pacify ★★★★★
() автор топика
Ответ на: комментарий от ratatosk

Да, кстати, если один тред пишет, а другой читает, глюков не будет.

OK

pacify ★★★★★
() автор топика

In Linux and many other UNIX flavors, thread A and B will both block
until some data arrives, but only one thread will be wakeup to receive
the data.

Получается что, как минимум, в блокирующем режиме все безопасно.

urxvt ★★★★★
()
Ответ на: комментарий от urxvt

И даже так:

POSIX.1-2001/SUSv3 requires accept(), bind(), connect(), listen(),
socket(), send(), recv(), etc. to be thread-safe functions.

urxvt ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.