使用Javascript ajax实现PHP中的多线程,是否可行?

3
我正在开发一款基于Html5、JavaScript(jQuery)和ajax的游戏,并使用PHP作为服务器端。现在游戏中有不同类型的工作,你可以根据工作时间长度分配给你的玩家。比如,我已经将一个工作JOB1分配给了一个玩家PLAYER1,持续时间为10分钟,另一个工作JOB2分配给了另一个玩家PLAYER2,持续时间为30分钟。
PLAYER1 = JOB1(10MINS)
PLAYER2 = JOB2(30MINS)

现在我想在PHP中创建多线程来并行处理这两个作业,并在每个作业完成后的一分钟内将请求发送到客户端。我知道有各种方法可以在PHP中创建多线程,我可以使用ajax发送请求到PHP服务器以在启动作业时创建线程,但是如何将数据返回到客户端并在每分钟后显示数据呢?这是否可能?还有其他选项可以做同样的事情吗?

创建一个包含作业、工作者和结果队列的队列。 - zerkms
好问题。我也想知道这个。 - NILAY PATEL
你应该只保存哪个玩家拥有哪个工作,并使用类似长轮询的方式获取信息,以确定工作是否完成。http://en.wikipedia.org/wiki/Push_technology#Long_polling - Benjamin Paap
2个回答

0

我认为这更适合使用多进程而不是多线程来完成。

要创建另一个PHP线程,您可以使用类似于pcntl_fork的东西:

http://php.net/manual/en/function.pcntl-fork.php

但在请求/响应类型的情况下,例如HTTP,您更可能会启动一个单独的进程,然后从客户端轮询它。

要使用PHP执行此操作,您需要使用&运算符在CLI上创建另一个进程(仅适用于Linux,如果您需要Windows,请告诉我,我会更新答案),然后使用以下任一方法进行轮询:


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接