首页 新闻 会员 周边 捐助

C++面试题

0
[已解决问题] 解决于 2023-04-07 13:21

业务场景:A程序和B程序需要协同才能完成一项工作,A要等B完成第一步,A继续处理,然后通知B去继续处理后续工作,这个协同功能可以通过哪几种方式来实现?

C++
景哈哈的主页 景哈哈 | 初学一级 | 园豆:8
提问于:2023-03-03 14:31
< >
分享
最佳答案
0

我能想到的就只有这几种
1.A结束后直接通知B,前提是A和B之间进程间交互比较方便,而且同步任务不会导致AB各自的运行异常
2.搞一块共享内存当锁
3.socket套接字通信

奖励园豆:5
轩先生。 | 菜鸟二级 |园豆:418 | 2023-03-06 16:03
其他回答(2)
0

实现A程序和B程序之间的协同功能可以通过以下几种方式来实现:

1.消息队列:A程序可以向消息队列中发送消息,等待B程序从消息队列中读取消息并进行处理,处理完后再将结果写入消息队列中通知A程序继续处理后续工作。

2.进程间通信(IPC):A程序和B程序可以通过共享内存、管道、消息队列、信号量等IPC机制来进行通信,实现协同工作。

3.网络通信:A程序和B程序可以通过套接字等网络通信方式来进行通信,例如A可以向B发送网络请求,等待B的响应,然后再继续处理后续工作。

4.异步编程:A程序和B程序可以使用异步编程方式来实现协同工作。例如,A程序可以启动一个异步任务,等待B程序的响应,B程序处理完后再通过回调函数通知A程序继续处理后续工作。

以上几种方式都可以实现A程序和B程序之间的协同功能,选择哪种方式需要根据具体的需求和场景来决定。

心若向阳花自开 | 园豆:290 (菜鸟二级) | 2023-03-08 14:34
0

A程序和B程序,说明场景是进程间通信,自己拉一个SOCKET,或者采用RPC就是比较成熟的解决方案。还有一种场景就是有一个主程序,他为了完成一个复杂的任务采用了多进程方案,启动的许许多多的子进程,而这些子进程的某些进程间必须保证同步顺序,这种情况下主进程可以设置一个工作流,工作流可用一个xml表示,这个xml文件中指示了哪些任务必须在哪些任务之后才能执行(依赖关系)形成一个树形图然后格局这颗树调度进程。。。

Smalldy | 园豆:496 (菜鸟二级) | 2023-03-13 20:42
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册