• 技术文章 >后端开发 >php教程

    php多线程是什么意思

    清浅清浅2019-06-19 14:35:02原创1787
    PHP在默认的情况下是不支持多线程的,通过安装pthreads扩展,让其参数来指定编译PHP的线程安全方式来使其支持多线程,但是使用的过程中要考虑到线程安全的问题。

    线程是操作系统中进行运算调度的最小单位。它被包含在进程中,是进程中的实际运作单位。今天将要分享的是线程知识是有关于PHP的,具有一定的参考价值,希望对大家有所帮助

    【推荐课程:PHP教程

    多线程的理解

    所谓多线程就是在在一个进程中可以并发多个线程,每条线程并行执行不同的任务。多线程大大提高了程序的执行效率,一个多线程比单线程被操作系统调度的概率更大。而且更高效。多个线程可以在多核CPU的多个核心同时运行,加快了运行效率。而且线程间的通信更加简单。

    PHP多线程

    在默认情况下PHP是不支持多线程的,要使用多线程需要安装 扩展,目前常用的扩展有pcnlt,POSIX ,pthreads,但是用的最多的还是pthreads扩展,它通过使用参数来指定来编译PHP时的线程安全方式,使其支持多线程。

    在使用线程之前首先要考虑到线程的安全问题,线程安全指的是某个函数或函数库在多线程环境中被调用时,能够正确的处理多线程之间的共享变量,使得程序的功能能够正确完成

    例:

    在多线程中由于存在共享变量,很有可能会导致出现以下问题:

    存在一个全局数组:$arr = array('a');
    A 线程获取数组长度为1;
    B 线程获取数组长度为1;
    A 线程pop出数组元素 $a = array_pop($arr); $a = 'a';
    B 线程也pop数组元素 $b = array_pop($arr); $a = null;
    但是此时B线程内就出现了错误事件,虽设置了数组长度大于0,但是没有 pop值来

    PHP实现线程安全

    PHP实现线程安全主要通过 TSRM 机制,通过此机制可以对全局变量和静态变量进行隔离,并且给每个线程都复制了一份全局变量和静态变量。各个线程使用的都是主线程的一个备份。这样就避免了变量冲突,也不会发生线程安全的问题。

    PHP 对多线程的封装保证了线程安全,所以开发人员就不需要在考虑读写冲突的问题了,也使得代码更加安全。不过这样做也有不好的地方,例如当子线程开始运行时,主线程便再也无法对子线程运行细节进行调整了,失去了消息传递能力

    总结:以上就是本篇文章的全部内容了,希望对大家有所帮助。

    以上就是php多线程是什么意思的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:php多线程
    上一篇:php中curl访问https与CA证书(代码示例) 下一篇:如何使用PDO进行SELECT查询?(代码示例)
    PHP编程就业班

    相关文章推荐

    • php多线程实例详解• php多线程的创建及使用• 使用pthreads实现真正的PHP多线程的方法

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网