好得很程序员自学网
  • 首页
  • 后端语言
    • C#
    • PHP
    • Python
    • java
    • Golang
    • ASP.NET
  • 前端开发
    • Angular
    • react框架
    • LayUi开发
    • javascript
    • HTML与HTML5
    • CSS与CSS3
    • jQuery
    • Bootstrap
    • NodeJS
    • Vue与小程序技术
    • Photoshop
  • 数据库技术
    • MSSQL
    • MYSQL
    • Redis
    • MongoDB
    • Oracle
    • PostgreSQL
    • Sqlite
    • 数据库基础
    • 数据库排错
  • CMS系统
    • HDHCMS
    • WordPress
    • Dedecms
    • PhpCms
    • 帝国CMS
    • ThinkPHP
    • Discuz
    • ZBlog
    • ECSHOP
  • 高手进阶
    • Android技术
    • 正则表达式
    • 数据结构与算法
  • 系统运维
    • Windows
    • apache
    • 服务器排错
    • 网站安全
    • nginx
    • linux系统
    • MacOS
  • 学习教程
    • 前端脚本教程
    • HTML与CSS 教程
    • 脚本语言教程
    • 数据库教程
    • 应用系统教程
  • 新技术
  • 编程导航
    • 区块链
    • IT资讯
    • 设计灵感
    • 建站资源
    • 开发团队
    • 程序社区
    • 图标图库
    • 图形动效
    • IDE环境
    • 在线工具
    • 调试测试
    • Node开发
    • 游戏框架
    • CSS库
    • Jquery插件
    • Js插件
    • Web框架
    • 移动端框架
    • 模块管理
    • 开发社区
    • 在线课堂
    • 框架类库
    • 项目托管
    • 云服务

当前位置:首页>后端语言>PHP
<tfoot draggable='sEl'></tfoot>

phpthread类的简单介绍

很多站长朋友们都不太清楚phpthread类,今天小编就来给大家整理phpthread类,希望对各位有所帮助,具体内容如下:

本文目录一览: 1、 php多线程 2、 php的thread是个什么情况 3、 thread.php随便写个函数都会导致页面打开空白怎么解决大神们帮帮忙 4、 PHP5 non-thread-safe和thread-safe的区别 php多线程

以下都是转载, 简单说下, php是不支持多线程的。。。。

PHP语言本身是不支持多线程的. 总结了一下网上关于PHP模拟多线程的方法, 总的来说, 都是利用了PHP的好伙伴们本身所具有的多线程能力. PHP的好伙伴指的就是LINUX和APACHE啦, LAMP嘛.

另外, 既然是模拟的, 就不是真正的多线程. 其实只是多进程. 进程和线程是两个不同的概念. 好了, 以下方法都是从网上找来的.

1. 利用LINUX操作系统

<?php

for ($i=0;$i<10;$i++) {

echo $i;

sleep(5);

}

?>

上面存成test.php, 然后写一段SHELL代码

#!/bin/bash

for i in 1 2 3 4 5 6 7 8 9 10

do

php -q test.php

done

2. 利用fork子进程(其实同样是利用LINUX操作系统)

<?php

declare(ticks=1);

$bWaitFlag = FALSE; /// 是否等待进程结束

$intNum = 10; /// 进程总数

$pids = array(); /// 进程PID数组

echo ("Startn");

for($i = 0; $i < $intNum; $i++) {

$pids[$i] = pcntl_fork();/// 产生子进程,而且从当前行之下开试运行代码,而且不继承父进程的数据信息

if(!$pids[$i]) {

// 子进程进程代码段_Start

$str="";

sleep(5+$i);

for ($j=0;$j<$i;$j++) {$str.="*";}

echo "$i -> " . time() . " $str n";

exit();

// 子进程进程代码段_End

}

}

if ($bWaitFlag)

{

for($i = 0; $i < $intNum; $i++) {

pcntl_waitpid($pids[$i], $status, WUNTRACED);

echo "wait $i -> " . time() . "n";

}

}

echo ("Endn");

?>

3. 利用WEB SERVER, PHP不支持多线程, APACHE可是支持的, 呵呵.

假设我们现在运行的是a.php这个文档. 但是我在程式中又请求WEB服务器运行另一个b.php

那么这两个文档将是同时执行的.

<?php

function runThread()

{

$fp = fsockopen('localhost', 80, $errno, $errmsg);

fputs($fp, "GET /a.php?act=brnrn");

fclose($fp);

}

function a()

{

$fp = fopen('result_a.log', 'w');

fputs($fp, 'Set in ' . Date('h:i:s', time()) . (double)microtime() . "rn");

fclose($fp);

}

function b()

{

$fp = fopen('result_b.log', 'w');

fputs($fp, 'Set in ' . Date('h:i:s', time()) . (double)microtime() . "rn");

fclose($fp);

}

if(!isset($_GET['act'])) $_GET['act'] = 'a';

if($_GET['act'] == 'a')

{

runThread();

a();

}

else if($_GET['act'] == 'b') b();

?>

当然啦,也可以把需要多线程处理的部分交给JAVA去处理, 然后在PHP里调用, 哈哈.

<?php

system('java multiThread.java');

?>

php的thread是个什么情况

php通过扩展pthreads也可以支持线程上的操作,在mac下可以通过brew安装pthreads扩展。线程类要继承Thread类,而后实现run方法。

class computer extends Thread {

 

    public $id;

    public $runing = false;

    public $params = null;

 

    public function __construct($id) {

        $this->id     = $id;

        $this->runing = true;

    }

 

    public function run() {

        while ($this->runing) {

            if (is_null($this->params)) {

                echo "线程({$this->id})等待任务...\n";

            } else {

                echo "线程({$this->id}) 收到任务参数::{$this->params}.\n";

                $this->params = null;

            }

            sleep(1);

        }

    }

 

}

不建议在PHP-FPM里使用多线程,写不好会导致工作进程频繁崩溃.使用PHP就应该转变思路,不要照搬Java那一套.异步处理耗时任务也不一定要使用多线程.你完全可以在PHP中用 pclose(popen('/path/to/task.php ', 'r')); 异步打开一个进程处理耗时的任务,PHP-FPM则返回信息给浏览器提示"正在处理",task.php这个cli脚本处理完成任务后,把数据库当前任务的状态标记为"完成",前端AJAX定时轮询到这个任务为"完成",则提示用户即可.

thread.php随便写个函数都会导致页面打开空白怎么解决大神们帮帮忙

你这个函数 和体系函数重名了 require/common.php 中已经有一个方法应用了这个重名了改个名就好 查看原帖>>

PHP5 non-thread-safe和thread-safe的区别

先从字面意思上理解,None-Thread Safe就是非线程安全,在执行时不进行线程(thread)安全检查;Thread Safe就是线程安全,执行时会进行线程(thread)安全检查,以防止有新要求就启动新线程的 CGI 执行方式耗尽系统资源。

再

来看PHP的两种执行方式:ISAPI和FastCGI。FastCGI执行方式是以单一线程来执行操作,所以不需要进行线程的安全检查,除去线程安全检

查的防护反而可以提高执行效率,所以,如果是以 FastCGI(无论搭配 IIS 6 或 IIS 7)执行 PHP ,都建议下载、执行

non-thread safe 的 PHP (PHP 的二进位档有两种包装方式:msi 、zip ,请下载 zip

套件)。而线程安全检查正是为ISAPI方式的PHP准备的,因为有许多php模块都不是线程安全的,所以需要使用Thread Safe的PHP。

关于phpthread类的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。

查看更多关于phpthread类的简单介绍的详细内容...

声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did225729
更新时间:2023-05-11   阅读:29次

上一篇: PHP支持python吗 php key

下一篇:php桌面应用性能 php应用场景

相关资讯

最新资料更新

  • 1.phphtml补全 html自动补全代码
  • 2.学校php培训机构 php培训学校是什么意思
  • 3.php数字语音播报 php语音转文字
  • 4.php的项目开发 php项目开发案例整合
  • 5.php版本怎么更新 php版本升级
  • 6.php二维码读取 php做二维码会用到的技术
  • 7.基于php在线聊天 php 在线聊天
  • 8.php判断字符串的编码 php 判断字符串是否存在某个字符串
  • 9.phpml源码安装 下载了个php源码包,怎么使用
  • 10.php会员登录与注册 php 用户登录
  • 11.php调用裁剪插件 phpcrawl
  • 12.影视php解析api php解析vip视频
  • 13.php正则获取图片 php使用正则表达式
  • 14.基于PHP日记网站 phpstudy网站日志
  • 15.php事务的隔离级别 php事务处理
  • 16.redis缓存类php php redis页面缓存
  • 17.zblogphp分类 zblog asp
  • 18.php推荐接口排重 接口 php
  • 19.扫描登录php代码 扫描登录php代码错误
  • 20.iconv函数php iconv函数参数

CopyRight:2016-2025好得很程序员自学网 备案ICP:湘ICP备09009000号-16 http://haodehen.cn
本站资讯不构成任何建议,仅限于个人分享,参考须谨慎!
本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。

网站内容来源于网络分享,如有侵权发邮箱到:kenbest@126.com,收到邮件我们会即时下线处理。
网站框架支持:HDHCMS   51LA统计 百度统计
Copyright © 2018-2025 「好得很程序员自学网」
[ SiteMap ]