首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >多个PHP脚本可以同时运行吗?

多个PHP脚本可以同时运行吗?
EN

Stack Overflow用户
提问于 2013-06-17 16:42:39
回答 5查看 3.7K关注 0票数 1

我正在用Flash和PHP构建一个基于回合的多人游戏。有时两个用户可能会同时调用同一个PHP脚本。此脚本旨在将一些信息写入数据库。但是,如果该信息已由其他用户编写,则不应运行该脚本,否则游戏将中断。如果PHP按顺序处理这些脚本(类似于MySQL对多个查询进行排队的方式),那么总共应该只运行一个脚本,一切都应该很好。

然而,我发现大约10%的时间,两个用户的脚本都会被执行。我的理论是,服务器有时会同时接收两个用户请求来运行脚本,它们都会运行,因为两者都没有检测到数据库中还没有写入任何内容。这两个脚本有没有可能同时执行?如果是这样,这个问题的可能解决方案是什么。

EN

回答 5

Stack Overflow用户

发布于 2013-06-17 17:48:58

THis确实是可能的。您可以尝试锁定和解锁脚本开头和结尾的表。

虽然这会减慢一些请求,因为它们必须首先等待锁定的表被解锁。

票数 2
EN

Stack Overflow用户

发布于 2013-06-17 16:47:49

不管是PHP,C,还是Java都没关系。同时,最多只能运行与CPU(和内核)一样多的进程。如果你只有2个核心,那么可以同时运行100个进程。只有2个在运行,其余的正在等待。

现在,这取决于您在run下看到的内容。如果您将其视为活动进程,或者如果您还将其视为等待进程。其次,这取决于您的系统配置、可以等待的进程数以及您的系统规格。

票数 1
EN

Stack Overflow用户

发布于 2019-12-19 07:17:47

乍一看,像是让脚本的第二个实例滚动发生的速度不够快,有10%的时间是这样的……我知道你已经有了某种“锁”,就像有人告诉你添加的那样,这很棒;正如上面提到的,总是把这个锁放在你的脚本中的第一件事,如果不是在调用脚本之前(在父脚本中也是这样)。竞争函数/对象等也是如此。

不过需要注意的是,我是被google引导到这里的,我想知道的是,如果脚本A没有运行完,脚本B是否会在IFRAME中运行(所以如果你愿意,可以在一个“不同的窗口”中运行);基本上你的标题有点模糊。非常感谢。

幸运的是,我们在同一条裤子上:我正在用php编写一个类似炉石的纸牌游戏(我知道php根本不适合这个,但我只是喜欢具有挑战性的任务,好吧,这是我唯一熟悉的语言)。基本上,当另一组全局事件/即时-即时-子-即时滚动时,我必须保持多个“瞬间”或动作不被触发。这包括永远不要调用一个包含事件的函数到同一个滚动代码片段中,除非我在一个值为y的$_SESSION变量上滚动了一段时间,该变量只做$_SESSION(1)(在脚本A中发生);while ==“== "EndOfTurnEffects”,然后继续滚动,直到$_SESSION“阶段”== "StandBy“(其他玩家轮到),我希望脚本B修改$_SESSION”阶段“。基本上,如果脚本B在脚本A执行完之前没有运行,我就会陷入while语句的无休止循环……

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

https://stackoverflow.com/questions/17143529

复制
相关文章

相似问题

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