我正在使用Flash和PHP构建基于回合的多人游戏。有时,两个用户可能会同时调用同一PHP脚本。该脚本旨在将一些信息写入数据库。但是,如果该信息已由其他用户编写,则该脚本不应运行,否则游戏将中断。如果PHP按顺序处理这些脚本(类似于MySQL如何对多个查询进行排队),则总共应该只运行一个脚本,并且一切都应该很好。
但是,我发现大约有10%的时间都执行了两个用户的脚本。我的理论是服务器有时会同时接收两个用户请求,以同时运行脚本,而这两个服务器都运行,因为都没有检测到任何内容已写入数据库。是否可以同时执行两个脚本?如果是这样,该问题的可能解决方案是什么。
这确实是可能的。您可以尝试在脚本的开头和结尾处锁定和解锁表。
尽管这会使某些请求变慢,因为它们必须首先等待锁定的表被解锁。
没关系,无论是PHP,C还是Java。同时,您只能具有CPU(和内核)的最大数量的进程。如果您只有2个核心,那么可以同时运行100个进程。只有2个正在运行,其余正在等待。现在,这取决于您在 run