微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PHP可以同时或逐个提供多个请求吗?

我想运行一个每秒运行一次的PHP脚本来更新MysqL表.

假设此脚本需要0.99秒,这会阻止网站访问者在脚本执行时访问网站吗?他们会收到超时/内部服务器错误吗?
如果是这样,有没有办法使用某种多线程选项呢?

为了提供更多细节,我正在尝试创建一个有怪物的角色扮演游戏.
这些怪物存储在名为rpg_monsters的表中.怪物表有一个ID,目标,x和y字段,需要查看它们是否在彼此的范围内以攻击可能的敌人.
如果它们在彼此的范围内,则需要将其目标更新为该怪物ID.今天我仍然有很少的怪物,但是这个数字将来会增加,从而增加了剧本的执行时间.

据我所知,在正常情况下,您需要专门的服务器才能完成此类紧张工作.但是,我想看看在过载之前我可以推动PHP / MysqL多远.

先感谢您!

解决方法:

简答:不.

每次对PHP脚本的新调用都会创建一个新的PHP实例(通常是一个新进程,在某些情况下它只是在新线程下运行,但这不会影响您的问题),并且多个实例彼此独立运行.

作为套管点,尝试运行此脚本:

<?PHP

  sleep(20);

?>

…并在运行时发送新请求/启动另一个实例.你会看到一个不会以任何方式影响另一个.

添加关于问题的线程元素的更多信息:PHP本身不能是多线程的.如果你在最近的IIS中作为IIS模块运行它(我不记得确切的时候开始)PHP实例将在IIS进程的新线程下运行 – 但是你无法启动它PHP中的线程.在每个其他设置(AFAIK)中,每个新的PHP实例都会创建一个新进程.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐