Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/128.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;如何编写一个相互竞争的游戏(共享记忆)_C++_Memory Management_Parallel Processing - Fatal编程技术网

C++ C++;如何编写一个相互竞争的游戏(共享记忆)

C++ C++;如何编写一个相互竞争的游戏(共享记忆),c++,memory-management,parallel-processing,C++,Memory Management,Parallel Processing,我们需要用玩家a(可能是通过输入,但为了简单起见,只能使用自动代码)和玩家B编写一个游戏 A和B位于共享阵列上 int Map[100][100] 一种方法是编写顺序代码,这一点都不有趣。特别是,使用键盘输入时,可能会出现“卡住”和“漏击” 充分考虑计算能力和同步更新的一种方法是对播放器A和播放器B使用并行处理,例如while循环中的并行for循环或并行for循环中的while循环 然而,这带来了另一个关于上述共享内存使用的问题。解决这个问题的一种方法是使用fstream设置更长的延迟时间,并

我们需要用玩家a(可能是通过输入,但为了简单起见,只能使用自动代码)和玩家B编写一个游戏

A和B位于共享阵列上

int Map[100][100]
一种方法是编写顺序代码,这一点都不有趣。特别是,使用键盘输入时,可能会出现“卡住”和“漏击”

充分考虑计算能力和同步更新的一种方法是对播放器A和播放器B使用并行处理,例如while循环中的并行for循环或并行for循环中的while循环

然而,这带来了另一个关于上述共享内存使用的问题。解决这个问题的一种方法是使用fstream设置更长的延迟时间,并对磁盘进行写入和读取。但这显然会导致麻烦和可能的崩溃,以及计算效率的延迟。(如果同时访问内存,阵列引用是否也会导致问题?或者CPU内存桥的硬件设计是否考虑了这一点?)

如何使用共享内存/阵列编写一个相互竞争的并行游戏


sudo语言:

player_script(indices, ){while(condition){}}

main(){
parallel_for(ix){player_script(ix, );}
}

你是说“并行过程”吗?如果是这样,您真的想要访问共享内存区域的单独进程,还是一个具有多个线程的单个进程(根据定义,它们共享相同的内存空间)就足够了?请提供一个在此数组上执行的计算示例。哪个进程写什么,为什么?什么时候读什么?照目前的情况,这个问题是不可能回答的