首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >单线程两个进程

单线程两个进程
EN

Stack Overflow用户
提问于 2008-10-30 06:31:20
回答 3查看 405关注 0票数 0

我有两个C++进程(A和B),在Windows下执行,其中一个启动另一个进程。我想有效地执行它们。例如:

  1. 启动过程A
  2. A创造B
  3. 暂停
  4. B执行一些固定的操作集
  5. B暂停并恢复A
  6. A执行一些固定的操作集。
  7. A暂停,B恢复
  8. (重复4-7次)

哪种Windows同步和IPC服务最适合实现这种行为?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2008-10-30 07:09:32

在这种情况下,事件将起作用:

  • A创建一个事件a启动进程B
  • A等待事件被发出信号。
  • B还创建一个事件,它的第一项,然后信号A的事件(它有一个众所周知的名称或句柄可以传递给B启动或使用其他机制
  • B等待它的事件
  • 当A恢复等待它的事件时,它会做它的工作,发出信号B的事件,并等待它自己
  • 所以..。

只需确保您有错误处理,以便每个进程可以恢复,并做任何必要的,如果另一个挂起或终止意外。超时可以处理挂起情况,等待另一个进程的句柄(使用WaitForMultipleObjects()以及进程和事件句柄)可以确定其他进程是否/何时终止。

票数 6
EN

Stack Overflow用户

发布于 2008-10-30 07:03:18

传递两个事件句柄(CreateEvent)来处理B。当进程a工作时,向一个句柄发送信号,当进程b工作时,发送另一个句柄信号。每个进程调用WaitForSingleObject()来等待另一个进程完成一组工作。

票数 2
EN

Stack Overflow用户

发布于 2008-10-30 06:52:19

对于进程间同步,可以使用信号量。这是文档

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/249415

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档