gpt4 book ai didi

我们可以在 fork() C 调用的进程之间切换吗,比如切换播放器

转载 作者:太空宇宙 更新时间:2023-11-04 04:30:49 25 4
gpt4 key购买 nike

例如,我小时候使用 fork 调用 4 player.c 并想创建棋盘游戏,并且在每个玩家完成转弯后,程序将暂停该 player.c 并切换到另一个它会像这样重复,直到有人赢得比赛

最佳答案

这似乎是某种形式的互斥可能实现的。这个问题相当模糊,所以我的回答也将更笼统,而不是提供代码

但是首先你必须考虑这里是否真的需要多处理。使用多个进程的主要原因是您的程序可以同时执行多个任务。

看起来实际上您只是想序列化一系列任务。但是,由于您看起来很新(如果这个假设是错误的,我深表歉意)我假设您仍然想了解多处理,即使它不是这里的最佳解决方案。

好吧,从最一般的意义上看,有两种基本方法可以查看多个进程,共享资源/对象和消息传递。

共享资源的操作是让多个进程同时访问同一内存、文件或其他一些东西。如果您希望采用这种方法,假设您使用的是存在 fork 的 POSIX 操作系统,您将需要查看 POSIX 中的 mmap 或共享内存调用集以及 POSIX 互斥或信号量对象。

但是,如果您希望使用消息传递,您可以研究 POSIX 消息队列或更简单的 UNIX 套接字或管道,甚至只是写入和读取文件。

我无法建议您使用哪种技术,因为性能差异非常复杂且相当微妙,超出了本答案的范围。但是,我会研究这两种技术,看看在概念上最适合您的是什么。

关于我们可以在 fork() C 调用的进程之间切换吗,比如切换播放器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36518272/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com