我们首先来看一个示例

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等进行检索来寻找信息。

③尝试使用多线程

示例如下

class pthreadsTest extends Thread {

public function run () {

sleep(5);

}

}

$ts1 = new pthreadsTest();

$ts1->start();

$ts2 = new pthreadsTest();

$ts2->start();

?>

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

php线程教程,实例讲解php实现多线程相关推荐

  1. Java5中的线程池实例讲解

    Java5增加了新的类库并发集java.util.concurrent,该类库为并发程序提供了丰富的API多线程编程在Java 5中更加容易,灵活.本文通过一个网络服务器模型,来实践Java5的多线程 ...

  2. 工具类软件操作手册_全套广联达软件学习资料合集:教程+实例讲解+操作手册,一文搞定...

    要学习并掌握好算量软件,不仅仅需要软件知识,还需要各种造价相关知识,只有精通软件及造价知识,才能大大的提高算量的速度及准确度. 一个算量的高手掌握的不单是软件操作技术,还要掌握的是造价的基础知识,你要 ...

  3. CSS教程:实例讲解定位Position

    http://www.missyuan.com/thread-395406-1-1.html 1. position:static 所有元素的默认定位都是:position:static,这意味着元素 ...

  4. python3线程gil_python3爬虫GIL修改多线程实例讲解

    我们打开程序后,会发现电脑的内存和cpu发生了变化.在对于前者上面,自然是希望内容占用小,cpu的利用越高越好.那有没有什么方法可以让我们的cpu达到满状态的运行效果呢?这就得用到我们所学的多线程中的 ...

  5. python多线程爬虫实例-Python3多线程爬虫实例讲解代码

    多线程概述 多线程使得程序内部可以分出多个线程来做多件事情,充分利用CPU空闲时间,提升处理效率.python提供了两个模块来实现多线程thread 和threading ,thread 有一些缺点, ...

  6. java线程 教程_Java多线程系列教程

    Java多线程系列教程 多线程是Java中不可避免的一个重要主体.从本章开始,我们将展开对多线程的学习.接下来的内容是对Java多线程内容的讲解,涉及到的内容包括,Object类中的wait(), n ...

  7. 守护线程和用户线程的真正区别(实例讲解)

    java 中的线程分为两种:守护线程(Daemon)和用户线程(User). 用户线程:我们平时所创建的都是用户线程. 守护线程:为用户线程提供服务. 任何线程都可以设置为守护线程和用户线程,通过方法 ...

  8. 【26天高效学习Java编程】Day19:60 多个实例讲解,彻底搞懂Java 多线程 【可查阅,可复习,可面试】

    本专栏将从基础开始,循序渐进,由浅入深讲解Java的基本使用,希望大家都能够从中有所收获,也请大家多多支持. 专栏地址:26天高效学习Java编程 相关软件地址:软件地址 所有代码地址:代码地址 如果 ...

  9. python 多线程 setdaemon_python使用Thread的setDaemon启动后台线程教程

    多线程编程当中, 线程的存在形态比较抽象. 通过前台线程后台线程, 可以有效理解线程运行顺序.(复杂的多线程程序可以通过设置线程优先级实现) 后台线程与前台线程的直接区别是, 1)setDaemon( ...

最新文章

  1. FiM | 牧医所奶业创新团队建立瘤胃微生物脲酶的靶向宏蛋白质组方法
  2. [Java] 实验4參考代码
  3. AIX系统日志学习笔记之三
  4. Android 让你的SeekBar 也支持长按事件
  5. ios retain 与 copy 的区别
  6. python定时任务crontab_【Python】Linux crontab定时任务配置方法(详解)
  7. 存档:命令行程序的路径参数不能有空格
  8. 红火七月——安全专家齐聚共讨漏洞分析
  9. ANSI,UTF-8,Unicode,ASCII编码的区别
  10. 从JDK 6升级到JDK 7过程中遇到的一个问题
  11. python对文件去重_python对文件夹内文件去重
  12. Linux操作系统入门培训_Linux/Unix基础培训教程视频课程-风哥-专题视频课程
  13. 将已有的文件夹添加到git
  14. google scholar 使用不了的问题——已解决
  15. python简单语法题_Python练习+简单语法摘要,习题,总结
  16. linux 工具——终端分屏与vim分屏
  17. c语言实现万能求积分
  18. 2020汽车驾驶员(中级)证考试及汽车驾驶员(中级)操作证考试
  19. 基于SSM的汽车维修管理软件设计与实现
  20. java计算机毕业设计ssm党支部在线学习

热门文章

  1. 在人工智能的角逐中,仿真数据是重要的平衡力量吗?
  2. 计算机科学与技术0775,0775 计算机科学与技术学硕专业介绍
  3. Stata数据处理:import-fred-命令导入联邦储备经济数据库-FRED
  4. win10PC上安装deepin深度Linux系统简易教程
  5. spring--享学课堂
  6. 腾讯开放平台提交app审核无法上传apk文件
  7. 显控一体机选型_显控一体机_显之研
  8. 同步FIFO(Verilog)
  9. C语言学习——从零开始学编程(第三篇:选择与循环)
  10. Predict Binding Sites of Transcription Factor 富集分析