【PHP中的线程?】教程文章相关的互联网学习教程文章

线程安全是PHP 5.4中的一个真正问题吗?

在我的PHP 5.4.0应用程序(IIS,FastCGI,非线程安全)中是否有可能让两个人通过在完全相同的时间运行相同的代码来更新数据库中的同一个表并且无意中弄乱了彼此的数据? 我问的原因是因为我看到偶尔会出现无法解释的数据故障,在最近的案例中,我发现另一位客户在同一时间更新了同一个表. 我的问题的第二部分是,如果确实发生了这种情况,我该如何预防呢?解决方法:由于非线程安全的PHP,它们不能“弄乱对方数据”,不,除非您正在准备/编写Ap...

php – 在多线程.htaccess之后,Magento中的类别视图(仅)中缺少产品【代码】

我正在为已经活跃的Magento网站添加额外的网站/店面. 在开发网站上进行设置时,我注意到每当我放入多线圈的.htaccess代码时,所有产品都会从类别视图中消失.但是,我仍然可以通过直接链接获取产品,例如my-domain.com/category/product. 这是我正在使用的.htaccess代码:## Storefronts# Main Store SetEnvIf Host www\.my-domain\.com MAGE_RUN_CODE=main-store_code SetEnvIf Host www\.my-domain\.com MAGE_RUN_TYPE=website SetEnv...

PHP线程SimpleXMLElement【代码】

我一直在搜索这个问题而且我遇到了很多问题,但我不认为这是实际代码的问题.基本上这个代码在两个独立的线程中启动套接字服务器(登录和游戏),我基本上从非线程版本转换了这个代码,但我一直无法让这个工作用于线程.include "socket.php"; include "dep.php";class Server extends Thread {public $server;public $config;public function __construct($type){//$this->config = (string)$type;$this->run2($type);$this->run();}publ...

可以使用Cron作业来使用PHP来模拟多线程吗?【代码】

我有一个填充了1000条记录的mysql数据库表,可以说是5000条记录.每条记录都有一个处理过的布尔标志,默认为false(0).我想做的是每分钟在cron上运行一个PHP脚本.它的代码是这样的:<?php process();function process() {$sql = "SELECT id FROM items WHERE processed = '0' ORDER BY id ASC LIMIT 1";$result = $this->db->query($sql);if (! $result->has_rows())die;$id = $result->getSingle('id');processItem($id); //Will set ...

在PHP CLI中使用并行线程运行大循环【代码】

我在Symfony2 / PHP中有一个计算昂贵的后端进程,我想运行多线程. 由于我迭代了数千个对象,我想我不应该为每个对象启动一个线程.我想有一个$cores变量来定义我想并行的线程数,然后遍历循环并保持运行的那么多线程.因此,每次线程完成时,应启动具有下一个对象的新线程,直到完成所有对象. 查看pthreads文档并进行一些Google搜索,我找不到这种情况的可用示例.我发现的所有示例都有一次固定数量的线程,它们都没有遍历数千个对象. 有人能指...

PHP从多维数组(IMAP)创建多维消息线程数组【代码】

我的问题如下: 如果你看下面你会看到有一个带有消息ID的数据结构,然后是包含应该从imap_fetch_overview汇总的消息详细信息的最终数据结构.消息ID来自imap_thread.问题是它没有将电子邮件详细信息放在消息ID所在的位置. 这是我的数据结构:[5] => Array([0] => 5[1] => 9)[10] => Array([0] => 10[1] => 11)我想拥有的是:[5] => Array([0] => messageDetails for id 5[1] => messageDetails for id 9)[10] => Array([0] => messag...

通俗易懂的php多线程解决方案【代码】【图】

我们在做项目的时候,有些需求,特别是数据的响应处理需要花费大量的时间,由于php是一个短生命周期的脚本语言,到了默认的30秒,php的数据处理还没完成,php的生命周期就结束了。这时需要使用异步并发处理策略,也就是说,一次php调用可以发出的多个请求,这些请求不是按照顺序执行,而是可以异步并发执行的,一些请求用于在后台处理数据,一些请求用于接受后台响应状态,根据状态,与用户做一些简单的交互。但是问题来了,我们都...

php使用curl模拟多线程发送请求【代码】【图】

每个PHP文件的执行是单线程的,但是php本身也可以用一些别的技术实现多线程并发比如用php-fpm进程,这里用curl模拟多线程发送请求。php的curl多线程是通过不断调用curl_multi_exec来获取内容,这里举一个demo来模拟一次curl多线程并发操作。 1 /**2 * Subject:php模拟多线程请求curl返回结果3 * User: luokakale4 * Date: 2018/11/35 * Time: 11:146 */7 8 //设置缓冲为0(也可以去php.ini设置)9 ini_set(output_buffering, 0)...

PHP pthread 多线程 异步【代码】【图】

<?php class taskWork extends Thread {public $url = ;public $name = ;public $thread_id = ;public $is_runing = true;public function __construct($name){$this->name = $name;}public function run(){while($this->is_runing){if(!empty($this->url)){echo "线程:[{$this->name}]正在处理 URL:[{$this->url}]\r\n";$t1 = microtime(true);$httpcode = $this->httpcode($this->url);$t2 = microtime(true);$t = $t2-$t1;if($...

php 线程 互斥锁【代码】

在进行并发操作时,会导致共享数据的完整性的问题,要加入锁,在任意时刻只有一个线程访问该对象在PHP中定义专门用于线程同步控制的mutex的函数, pthreads v3 中已经将 Mutex 类移除。简单的计数器程序,有加锁和没有加锁的情况,pthreads v3使用synchronized同步处理 <?php class CounterThread extends Thread {public $counter = 0;public $handle;public $mutex;public function __construct($handle,$mutex = null){$this->mutex...

Php,“线程安全”的SQL操作【代码】

让我们谈谈评级系统:用户可以评价其他用户.有一个用户表:USER_ID,USER_NAME和费率:RATER_ID,RATED_ID,RATE(字符串)用户可以对某人进行一次评级,但可以随时改变主意我知道它有点奇怪,它永远不会发生,但让我们看看它是怎么回事:check if A ever rated B if no: INSERT INTO if yes: UPDATE所以,在伪代码中:$rec = SELECT COUNT(*) FROM users WHERE RATER_ID = a AND RATED_ID = b if ($rec == 0) {INSERT INTO rates (a, b, ra...

使用MySQL和PHP检查线程中有多少帖子的最快方法【代码】

我想知道它是否更快在尝试时,例如,检查论坛上特定帖子中有多少帖子.我是不是该… (a)使用特定的线程ID遍历数据库中的每个帖子,并计算行数 要么 (b)每次创建一个线程时,在线程数据库中向一个单独的列添加一个,然后查询该单个行 谢谢.解决方法:拥有线程ID的索引有什么问题?不会通过线程ID字段分组的简单COUNT表达式是否足够? 有了任何缓存,从我能说的话来看,这将是非常快的.--This will provide counts for all threads SELECT COU...

php – MY SQL查询线程消息传递收件箱并发送【代码】

我正在尝试在PHP和mySQL中创建线程消息传递系统.我的消息传递表如下SELECT `es_id`, `es_fid`, `es_tid`, `es_subject`, `es_message`, `es_onstamp`, `es_msg_read`, `es_f_del`, `es_t_del`, `threadid` FROM `esb2b_messages`在这张表中es_id = primary key for the table. es_fid = This field store the from user id. es_tid = This field store the to user id. es_subject = This field store the subject of message. es_...

php – laravel队列 – 同步驱动程序如何工作?它是在单独的进程还是主执行线程中执行?

我从我的服务器发送推送通知,并希望它只是在后台进程中执行.我已经阅读了Laravel文档,我也了解了数据库驱动程序和其他一些选项.我已经在我的本地机器上使用数据库驱动程序,但有一件事让我烦恼,我要开始一个后台线程来监听使用php artisan queue添加到队列中的作业:listen –deamon. 关键是,它总是通过像’crone’任务一样运行来消耗我的一些资源和内存.我只想在触发推送通知时创建一个新进程,它应该在添加后立即开始执行,之后应该...

如何在Ubuntu 14.04上使用线程安全的PHP启用事件MPM Apache 2.4?【代码】

我升级到Ubuntu Server 14.04,期望默认的apache安装将使用新的事件MPM,但我发现旧的内存吃prefork. 我已经在Arch Linux中成功设置了事件MPM,但我没有在Ubuntu上这样做.我一直在:Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. You need to recompile PHP我已经安装了php-fpm,并配置了apache2来使用它,但由于apache2的配置文件在Ubuntu上有所不同,我不太确定我是否在正确的地方做它. 关...