有沒有辦法從另一個線程更改線程的信號掩碼? 我應該編寫一個多線程的C應用程序,不使用互斥量,信號量和條件變量,只有信號。POSIX線程和信號掩碼
所以它看起來像這樣的事情: 主線程發送SIGUSR1到它的過程和和2個線程(不包括主線程)之一,將在信號和塊SIGUSR1從sigmask和睡眠響應。然後主線程再次發送SIGUSR1,另一個線程將響應,從它的sigmask中阻塞SIGUSR1,從其他線程的sigmask中解除SIGUSR1,所以它會再次響應SIGUSR1。
所以基本上每當主線程發送SIGUSR1時,兩個其他線程在彼此之間交換。
有人可以幫忙嗎?
pthread_sigqueue將是一個完美的選擇,但它只適用於Linux環境,一般不適用於posix。它不會在Mac OS上編譯x – Max
使用'pthread_kill'。無論如何,除了實時信號外,sigqueue並不比「kill」更好。 –