如何将更多信息发送到其他线程?

Nic*_*ong 5 c multithreading signals pthreads multiprocessing

我用C语言编写pthread.我想要一个线程告诉其他线程它已在消息队列上放置了一条消息,以便其他线程知道它们可以从消息队列中获取消息.但是,发送信号的线程应该向其他线程提供更多信息,例如线程ID,消息标记等.怎么做 ?

我知道pthread_kill函数,但似乎需要很少的信息.当我向其他线程使用线程发送信号时,我可以获取更多信息吗?

Mat*_*son 6

C语义中的​​信号无法获取"更多信息" - 如果要发送更多信息,则需要将其作为消息的一部分包含在message_queue中,而不是作为信号的一部分.

我很确定有很多替代方案.只是你没有想到它们.就像我说的,如果你想使用信号,那么使用一个信号来表明有信息(比如电话铃声)然后使用信息队列来传达实际信息(通过电话交谈).我们不使用电话铃声信号通过电话传送信息,对吧?

但我担心你在某种程度上误解了线程和信号的使用.我很确定你支持解决你做的事情的方式不是正确的方法.

因为你的问题是"我如何发送信号中的整数以上,我认为你应该接受Arno的答案,然后再试一次,如果这没有帮助 - 描述你的OVERALL问题是什么,你试图解决 - 现在你正在和机械师讨论如何松开螺栓,但你真正需要做的就是修理一个穿孔,所以你可能过于专注于如何解决细节问题甚至有一个千斤顶把车从地上抬起......