相关疑难解决方法(0)

如何在PHP应用程序中使用多线程

有没有一种在PHP中实现多线程模型的现实方法,无论是真实的,还是仅仅模拟它.一段时间后,有人建议你可以强制操作系统加载另一个PHP可执行文件实例并处理其他同步进程.

这个问题是当PHP代码完成执行时,PHP实例仍然在内存中,因为没有办法从PHP中删除它.因此,如果您正在模拟几个线程,您可以想象会发生什么.所以我仍然在寻找一种可以在PHP中有效地完成或模拟多线程的方法.有任何想法吗?

php multithreading

393
推荐指数
12
解决办法
44万
查看次数

PHP中的异步shell exec

我有一个需要调用shell脚本的PHP脚本,但根本不关心输出.shell脚本会进行大量的SOAP调用,并且完成起来很慢,因此我不想在等待回复时减慢PHP请求的速度.实际上,PHP请求应该能够在不终止shell进程的情况下退出.

我已经研究过的各种exec(),shell_exec(),pcntl_fork(),等功能,但他们都不似乎提供正是我想要的.(或者,如果他们这样做,我不清楚如何.)有什么建议吗?

php shell asynchronous

195
推荐指数
9
解决办法
16万
查看次数

PHP中的并行处理 - 你是如何做到的?

我目前正在尝试在php中实现一个作业队列.然后,队列将作为批处理作业处理,并且应该能够并行处理某些作业.

我已经做了一些研究并找到了几种方法来实现它,但我并没有真正意识到它们的优点和缺点.

例如,通过多次调用脚本来执行并行处理,fsockopen如下所述:
PHP中的简单并行处理

我找到的另一种方法是使用这些curl_multi功能.
curl_multi_exec PHP文档

但我认为这两种方式会增加相当多的开销,在队列上创建批处理应该主要在后台运行吗?

我也读到了关于pcntl_fork这似乎也是一种处理问题的方法.但是如果你真的不知道自己在做什么(就像我现在这样;),那看起来就会变得非常混乱.)

我也看了一下Gearman,但在那里我还需要根据需要动态生成工作线程,而不是只运行一些,然后让gearman作业服务器将它发送给自由工作者.特别是因为线程应该在执行一个作业后干净利落地退出,不会遇到最终的内存泄漏(在该问题中代码可能不完美).
Gearman入门

所以我的问题是,你如何处理PHP中的并行处理?为什么选择你的方法,不同的方法有哪些优点/缺点?

感谢您的任何意见.

php parallel-processing multithreading task-queue

34
推荐指数
3
解决办法
4万
查看次数

PHP中的线程?

我正在使用zend创建一个Web应用程序,在这里我创建了一个接口,用户A可以从该接口向多个用户发送电子邮件并且它工作正常,但它会缩短执行时间,因为用户A等待太多"已确认的回复"(将在电子邮件发送后显示).

在Java中有"线程",通过它我们可以执行该任务(发送电子邮件)并且它不会减慢其余应用程序的速度.

在PHP/Zend中是否有任何技术就像在Java中一样,我们可以将我们的任务分开,这可能需要很长时间,例如:发送电子邮件.

php multithreading zend-framework

29
推荐指数
2
解决办法
4万
查看次数

Php:何时使用pthread

我对使用线程知之甚少,但我查看了php的pthreads,它看起来非常有趣,容易,或者比我想象的更容易......

我搜索了一些示例并查看了文档,但是我找不到任何真实世界的例子,说明何时使用线程实际上是有益的,它确实适用于不依赖于彼此的长任务,例如执行许多http请求或也许发送邮件.

但是写日志条目怎么样?插入数据库?(比如跟踪用户活动)从数据库中获取(我可以从线程返回数据吗?)

这会增加性能还是过多地创建线程的开销?(虽然我可以使用工作池也可以减少开销,我认为...)

任何建议或例子都非常感谢!

php multithreading pthreads die

23
推荐指数
1
解决办法
2万
查看次数

Php多线程

Php,并不是真的为多线程做的,但你有任何workarround来处理PHP中的线程.

php multithreading

19
推荐指数
3
解决办法
5万
查看次数

PHP中的进程间通信是否具有连续进程?

我有一个关于PHP内进程间通信的问题.我想要的是让一个进程持续运行,让其他进程与此进行通信.这可能吗?

php

17
推荐指数
2
解决办法
1万
查看次数

PHP线程和同步

我是PHP的新手,所以要开始我已经决定实现一个单例.

虽然我能够在php中重新创建单例模式,但我不确定如何实现双重检查锁定.

这在PHP中是否可行/需要.我在某处读过PHP不是多线程的?有人可以证实吗?

如果它是多线程的,有人可以向我解释一下lock()或synchronize()在PHP中是如何工作的吗?

谢谢,亨利

php singleton multithreading synchronize double-checked-locking

6
推荐指数
1
解决办法
5865
查看次数

如何使用PHP // Thread // Mutex // Cond

PHP显然支持Thread类.还有一个MutexCond类.然而,需要用良好的选项编译它并添加PECL扩展来获得它.

有一个很好的教程从哪里开始?清楚显示每个类别/方法合理使用的东西.

我只是不知道如何处理这些类.我需要一些具体的例子来做非常简单的事情,展示尽可能多的方法.

谢谢.

php multithreading mutex

6
推荐指数
1
解决办法
7790
查看次数

如何在PHP中的HTTP请求之间共享内存?

我正在尝试实现一个非常非常大的字典搜索来匹配PHP中句子中的单词.我最初的想法是使用Aho-corasick算法,因为Aho-corasick解决了我的确切问题.我首先用PHP实现了一个Trie.Trie在缓存时会生成一个足够快的字典; 但是,它占用大约3mb的内存.这在PHP中无法很好地扩展.

显然,无论我们使用何种数据结构,大型字典都会占用大量内存.我只需要单个字典实例,因为它是静态的,不需要重建.

如果这个对象可以在所有线程之间共享,那么3mb的内存可以忽略不计,但是,我不确定在PHP中的线程之间共享内存的正确方法.

如何在HTTP请求之间共享此对象?当每个线程需要由Trie创建的3mb开销时,我看不到项目缩放.

php shared-memory

5
推荐指数
1
解决办法
1102
查看次数