Все ли потоки, исходящие из одного и того же процесса, приостанавливаются на вызове wait_event_interruptible()?

Лучшим решением является использование временных файлов. Это делает код читаемым и простым для понимания, когда подстановка процесса невозможна.

tmpfile=$(mktemp)

producer | tee "$tmpfile" | consumer1
consumer2 <"$tmpfile"

rm -f "$tmpfile"

или даже

tmpfile=$(mktemp)

producer >"$tmpfile"

consumer1 <"$tmpfile"
consumer2 <"$tmpfile"

rm -f "$tmpfile"
0
21.11.2019, 23:23
1 ответ

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

0
28.01.2020, 03:05

Теги

Похожие вопросы