我试图在PHP中使用pthreads来尝试加速一系列计算,这些计算目前最多可以在一个CPU核心上运行几秒钟。我已将计算拆分为多个范围,并在父线程中运行每个范围:
array_merge
然后,我希望join()
在父线程中的每个子线程(对于每个范围)中创建的数组,以获取整个数据集的值。
我认为我需要在父线程中使用__user
来等待线程完成,但是如何从子线程中获取一个值到父线程中?
答案 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