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实例都会创建一个新进程.

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...