当前位置: 首页 > 编程笔记 >

实例讲解php实现多线程

夏飞鹏
2023-03-14
本文向大家介绍实例讲解php实现多线程,包括了实例讲解php实现多线程的使用技巧和注意事项,需要的朋友参考一下

我们首先来看一个示例

<?php
 
class execMulti {
 function MultithreadTest {
  exec("php static_massive.php > /dev/null &");
 
  echo "处理完成了";
 }
}
?>

当执行上述操作时,即使在耗时的处理结束之前也显示处理完成。

exec("php static_massive.php > /dev/null &");

由于“ > / dev / null& ”返回的值丢失,我们不会等待响应。

因此,处理完成指示比耗时处理更快。

但是,该方法不知道耗时的处理何时结束。

不要忘记考虑采取日志的执行,登录DB等方法向用户传递执行结果。

用于多线程的方法(pthreads)

最后,介绍使用PHP扩展模块pthreads的方法。

它可以比上面使用exec的方法更简单。

①配置环境并安装php

请使用vagrant等准备喜欢的环境。

php 需要使用线程安全版本,这是多线程和安全的实现。

从官方下载线程安全版本的 PHP。

访问以下内容并从图中的红框下载。

http://www.php.net/downloads.php

此外,对于线程安全安装,您需要使用configure选项指定-enable-maintainer-zts。

./configure --enable-maintainer-zts

根据需要,也可以安上Apache和mysql的选项。

用以下命令确认了php的版本就可以了。

php -v

②pthreads的安装

我们来下载zip格式。

https://github.com/krakjoe/pthreads/archive/master.zip

解压zip,移动到解压缩文件,然后执行phpize。

如果您在PHP模块列表上运行pthreads,则可以执行以下操作。

php -m

根据环境的不同,这一块的设定也会有所不同,可以用环境名+pthreads等进行检索来寻找信息。

③尝试使用多线程

示例如下

<?php
class pthreadsTest extends Thread {
 public function run () {
  sleep(5);
 }
}
$ts1 = new pthreadsTest();
$ts1->start(); 
$ts2 = new pthreadsTest();
$ts2->start(); 
?>

因为sleep(5)被调用两次,所以需要10秒,但实际上它将是5秒。

 类似资料:
  • 本文向大家介绍Java 多线程实例讲解(一),包括了Java 多线程实例讲解(一)的使用技巧和注意事项,需要的朋友参考一下 Java多线程(一) 多线程作为Java中很重要的一个知识点,在此还是有必要总结一下的。 一.线程的生命周期及五种基本状态 关于Java中线程的生命周期,首先看一下下面这张较为经典的图: 上图中基本上囊括了Java中多线程各重要知识点。掌握了上图中的各知识点,Java中的多线

  • 本文向大家介绍java 多线程-线程通信实例讲解,包括了java 多线程-线程通信实例讲解的使用技巧和注意事项,需要的朋友参考一下 线程通信的目标是使线程间能够互相发送信号。另一方面,线程通信使线程能够等待其他线程的信号。 通过共享对象通信 忙等待 wait(),notify()和 notifyAll() 丢失的信号 假唤醒 多线程等待相同信号 不要对常量字符串或全局对象调用 wait() 通过共

  • 本文向大家介绍java多线程-同步块实例讲解,包括了java多线程-同步块实例讲解的使用技巧和注意事项,需要的朋友参考一下 java多线程-同步块 Java 同步块(synchronized block)用来标记方法或者代码块是同步的。Java 同步块用来避免竞争。本文介绍以下内容: Java 同步关键字(synchronzied) 实例方法同步 静态方法同步 实例方法中同步块 静态方法中同步块

  • 本文向大家介绍php多线程实现方法及用法实例详解,包括了php多线程实现方法及用法实例详解的使用技巧和注意事项,需要的朋友参考一下 下面我们来介绍具体php多线程实现程序代码,有需要了解的同学可参考。 当有人想要实现并发功能时,他们通常会想到用fork或者spawn threads,但是当他们发现php不支持多线程的时候,大概会转换思路去用一些不够好的语言,比如perl。 其实的是大多数情况下,你

  • 本文向大家介绍PHP实现APP微信支付的实例讲解,包括了PHP实现APP微信支付的实例讲解的使用技巧和注意事项,需要的朋友参考一下 一、PHP后台后台生成预支付交易单,返回正确的预支付交易回话标识后再在APP里面调起支付! 官方文档:https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=9_1 根据文档拼接微信需要的参数,这里需要几个

  • 本文向大家介绍PHP实现笛卡尔积算法的实例讲解,包括了PHP实现笛卡尔积算法的实例讲解的使用技巧和注意事项,需要的朋友参考一下 概念 在数学中,两个集合X和Y的笛卡儿积(Cartesian product),又称直积,表示为 X × Y。设A、B是任意两个集合,在集合A中任意取一个元素x,在集合B中任意取一个元素y,组成一个有序对(x,y),把这样的有序对作为新的元素,他们的全体组成的集合称为集合