将值返回给调用线程

时间:2015-04-27 16:35:19

标签: php multithreading

我试图在PHP中使用pthreads来尝试加速一系列计算,这些计算目前最多可以在一个CPU核心上运行几秒钟。我已将计算拆分为多个范围,并在父线程中运行每个范围:

array_merge

然后,我希望join()在父线程中的每个子线程(对于每个范围)中创建的数组,以获取整个数据集的值。

我认为我需要在父线程中使用__user来等待线程完成,但是如何从子线程中获取一个值到父线程中?

2 个答案:

答案 0 :(得分:2)

试试这个:

这将根据您的可用内核拆分Payload,循环遍历批次,而不是超过可用的Cpus最大线程数。 我使用这个非常简单的原理,而不是我测试过的许多其他Pthreads的可能性。到目前为止,对我来说最简单,最有效。

使用xenons服务器和80个可用的Cpus线程完美地工作超过100M迭代数小时。

unique_ptr<Project>project( new Project() );
project.Title = "Bob";
project.Type = PROJECTYPE.DISTRIBUTION;
project.Manager = manager;

app.SetProject( project.release() );

答案 1 :(得分:2)

完整的课程:

dynamic