有没有办法从另一个线程更改线程的信号掩码? 我应该编写一个多线程的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”更好。 –