百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>网页制作> PHP之pthread拓展运用以及坑
分享文章到:

PHP之pthread拓展运用以及坑

发布时间:09/01 来源:未知 浏览: 关键词:
PHP是为WEB开发而生,之前PHP是没有线程的说法,直到pthread的显现,这样php增添了活力;

引荐:《PHP教程》

一. 线程的创立和使用

1. Thread类

根本的创立和使用:

<?php
//通过继承Thread类来实现本人的线程类MyThread
class MyThread extends Thread{
    //重写结构函数
    function __construct(){
    }
    //重写run办法(运转的是子线程需要施行的任务)
    function run(){
    }
}
//对象的实例化和运转就和java一样
$mt = new MyThread();
$mt->start();

当然,作为线程类,必需还有别的一些用于查询线程状态乃至治理线程的办法

<?php
//猎取创立线程的父线程id
Thread::getCreatorId 
//猎取当前线程id
Thread::getCurrentThreadId
//猎取当前线程援用
Thread::getCurrentThread 
//将线程参加检测
Thread::join
//查看线程可否被检测(可否被join)
Thread::isJoined
//强行杀死线程
Thread::kill

2.Worker类

Worker类的父类是Thread类,因此根本用途和Thread一样。而Worker类相关于Thread类来说,增添了线程复用的功效(以落低创立烧毁线程所消耗的资源),平常与Stackable类连用,也就是说worker类既可以当做线程使用,也可以当做任务的容器来使用,如:

<?php
class Task extends Stackable{
    function __construct($no){
        $this->no = $no;
    }
    function run(){
        echo "task{$this->no}:run".PHP_EOL;
    }
}
class MyWork extends Worker{
    function __construct(){
    }
    function run(){
    }
}
$t1= new Task(1);
$t2= new Task(2);
$t3= new Task(3);
$my = new MyWork();
$my->stack($t1);
$my->stack($t2);
$my->start();
$my->stack($t3);

终究输出:

task1:run
task2:run
task3:run

当然Worker类还有其他一些办法来用于父线程对其停止治理

//猎取还没施行的任务数目
Worker::getStacked 
//推断worker可否关闭
Worker::isShutdown
//推断worker可否在工作
Worker::isWorking
//关闭烧毁worker
Worker::shutdown
//将任务压栈
Worker::stack
//将任务出栈(该api有问题,慎用)
Worker::unstack

二. PHP线程碰到的一些问题与留意点

1.线程类的属性不克不及直接停止哈希表(数组)操纵,如:

//这样是无效的
$this->var1["hello"] = "world"; 
//改为
$this->var1 = ["hello"=>"world"];

为什么?由于线程类属性的赋值是通过序列化实现的,其本质是储备了序列化数据,因此不支撑PHP常用直接操纵哈希表(数组)的操纵。

2.线程类的属性不克不及是“闭包函数”

缘由:闭包函数不克不及序列化;因此,假如想在线程里用“回调函数”的话,那就舍弃线程吧;

3.线程对象开拓了php的第二空间

(1)线程在创立之后,没法拜访到父线程的变量,诸如$GLOBALS或global等用途都没法操纵父线程的全局变量,这应当是思考到了线程平安的问题;

(2)但是父线程却能够拜访子线程对象的内容;

以上就是PHP之pthread拓展使用乃至坑的具体内容,更多请关注百分百源码网其它相关文章!

打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有151人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板