3

我正在使用 PHP 作为服务器端开发基于 Html5、JavaScript (jQuery) 和 ajax 的游戏。现在游戏中的内容是,您可以根据工作持续时间为玩家分配不同类型的工作。假设我已将一项持续时间为 10 分钟的工作分配JOB1给一名玩家PLAYER1,并将另一项工作分配给其他持续时间为 30 分钟的JOB2玩家。PLAYER2方法,

PLAYER1 = JOB1(10MINS)
PLAYER2 = JOB2(30MINS)

现在我想在 PHP 中创建多线程来并行处理这两个作业,并在每分钟完成该作业后将请求发送到客户端。

我知道在 PHP 中创建多线程有多种方法,我可以在使用 ajax 启动作业时将请求发送到 PHP 服务器以创建线程,但是如何将数据返回客户端并显示每分钟后的数据?

有没有可能?做同样事情的其他选择是什么?

4

2 回答 2

0

我认为这更像是多处理而不是多线程的任务。

要创建另一个 PHP 线程,您可以使用以下内容pcntl_fork

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

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

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

于 2012-12-06T08:43:46.633 回答
0

有一个名为“spork”的 php 库https://github.com/kriswallsmith/spork是 pcntl_fork 函数的包装器。

它对我来说效果很好而且很稳定。

于 2012-12-06T08:48:30.700 回答