c语言中,创建的子线程如何给主线程发消息? 45
main本身是主线程,使用pthread_create创建一个子线程,现在想让子线程给主线程发消息,应该怎么操作(不是使用共享内存的)?linux系统还有一点,主线程和子...
main本身是主线程,使用pthread_create创建一个子线程,现在想让子线程给主线程发消息,应该怎么操作(不是使用共享内存的)?
linux系统
还有一点,主线程和子线程之间的这个消息是异步的
就是说不能使用互斥量让主线程阻塞。
流程就是主线程一旦收到消息就XXXX,但是收不到的时候正常做自己的事情。 展开
linux系统
还有一点,主线程和子线程之间的这个消息是异步的
就是说不能使用互斥量让主线程阻塞。
流程就是主线程一旦收到消息就XXXX,但是收不到的时候正常做自己的事情。 展开
3个回答
展开全部
自己定义的信号,你要emit newOprMsg(unsigned int msg);
才行
不知道你emit了没~~
子线程的run()里,你好赖也得加个exec()吧,要不无事件循环,制能收到你的signal?
才行
不知道你emit了没~~
子线程的run()里,你好赖也得加个exec()吧,要不无事件循环,制能收到你的signal?
追问
这个,你能说得更详细些吗 或者给个具体的例子呢?
谢谢~~~~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
fork
是用来创建子进程的,
而不是线程(
线程创建需要用到
pthread_create
)
需要根据
fork()
的返回值来判断下面的代码是在父进程(返回pid>0)中还是子进程(返回0)中.
像上面的代码中
if
中的代码被在子进程中执行,
else
中的代码在父进程中执行.
是用来创建子进程的,
而不是线程(
线程创建需要用到
pthread_create
)
需要根据
fork()
的返回值来判断下面的代码是在父进程(返回pid>0)中还是子进程(返回0)中.
像上面的代码中
if
中的代码被在子进程中执行,
else
中的代码在父进程中执行.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
信号可以在线程间实现通讯 信号有处理方法 但信号不保证在主线程中被接收处理
听人说可以屏蔽只允许主线程接收处理,具体是否可行 未知
听人说可以屏蔽只允许主线程接收处理,具体是否可行 未知
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询