语言:C++
问题场景:nodejs调用C++接口,A线程为nodejs调用C++的线程,然后B线程是IO线程,B线程是异步调用,在B线程中回调函数中可以得到所返回的数据。
我把一个nodejs函数指针作为参数传给A,这个回调函数必须在A线程中执行,而且回调函数执行必须等到B线程有返回的数据才可以,而且A线程不能阻塞,否则界面操作无法响应。也就是说,C++代码立即返回到js。
尝试方法:
之前尝试了libuv,是成功了的,通过libuv,完成异步,C++代码立即返回到js,然后阻塞libuv的子线程得到B线程返回的数据,之后数据返回,便会重新进入到libuv的主线程也就是A线程执行回调。
但是目前用libuv开设一个子线程仅仅是充当一个阻塞作用,阻塞之后发送通知让主线程工作,过于复杂,想问问各位大佬有没有更为简单的方法处理这个场景。或者说单纯的用C++实现异步消息通知这些内容解决这个场景,其实就是简化一下,把我的IO线程作为工作线程,IO线程结束之后能够回到主线程执行回调,拜谢!!
或者说有没有一种消息通知机制,在B线程中触发消息通知,然后A线程执行消息对应的函数
那个,小弟我刚刚入园还没有园豆,万望见谅!!!