重点是你的主线程需要怎么使用这个命令响应?
1、如果是想有回应后触发特定动作,那么可以搞一个消息框架,用事件驱动,比如libevent,比如qt,比如用系统消息。这样A线程完成工作后发出消息,B线程就能接收到。
2、如果要粗暴点,就直接上回调,子线程里通过std::sync发布任务,然后promise.get获取结果后,直接执行回调,但缺点是回调函数还是在子线程执行,和主线程本身的业务可能会出现竞争。
3、如果主线程只是显示状态,比如界面的状态指示灯,那就简单了,子线程直接修改主线程的状态变量,主线程要么用界面框架的数据绑定,要么定时查询,把状态更新到界面上就行了。单变量(基础类型)的前提下,一边纯写入一边纯读取,连锁都不用加