电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

PHP中使用pthread拓展

瀏覽:168日期:2022-09-06 17:51:10
目錄一. 線程的創建和使用1. Thread類2.Worker類二. PHP線程遇到的一些問題與注意點1.線程類的屬性不能直接進行哈希表(數組)操作,如:2.線程類的屬性不能是“閉包函數”3.線程對象開辟了php的第二空間一. 線程的創建和使用1. Thread類

基本的創建和使用:

<?php//通過繼承Thread類來實現自己的線程類MyThreadclass MyThread extends Thread{ //重寫構造函數 function __construct(){ } //重寫run方法(運行的是子線程需要執行的任務) function run(){ }}//對象的實例化和運行就和java一樣$mt = new MyThread();$mt->start();

當然,作為線程類,必須還有另外一些用于查詢線程狀態以及管理線程的方法

<?php//獲取創建線程的父線程idThread::getCreatorId //獲取當前線程idThread::getCurrentThreadId//獲取當前線程引用Thread::getCurrentThread //將線程加入檢測Thread::join//查看線程是否被檢測(是否被join)Thread::isJoined//強行殺死線程Thread::kill2.Worker類

Worker類的父類是Thread類,因此基本用法和Thread一樣。而Worker類相對于Thread類來說,增加了線程復用的功能(以降低創建銷毀線程所耗費的資源),通常與Stackable類連用,也就是說worker類既可以當做線程使用,也可以當做任務的容器來使用,如:

<?phpclass 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//關閉銷毀workerWorker::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拓展的文章就介紹到這了,更多相關PHP pthread拓展內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: PHP
相關文章:
主站蜘蛛池模板: 澳门精准正版免费大全,2025新澳门全年免费,新澳天天开奖免费资料大全最新,新澳2025今晚开奖资料,新澳马今天最快最新图库-首页-东莞市傲马网络科技有限公司 | 学生作文网_中小学生作文大全与写作指导 | 广州工业氧气-工业氩气-工业氮气-二氧化碳-广州市番禺区得力气体经营部 | 道达尔润滑油-食品级润滑油-道达尔导热油-合成导热油,深圳道达尔代理商合-深圳浩方正大官网 | 智能垃圾箱|垃圾房|垃圾分类亭|垃圾分类箱专业生产厂家定做-宿迁市传宇环保设备有限公司 | 淘剧影院_海量最新电视剧,免费高清电影随心观看 | 广东青藤环境科技有限公司-水质检测 | 上海恒驭仪器有限公司-实验室平板硫化机-小型平板硫化机-全自动平板硫化机 | ETFE膜结构_PTFE膜结构_空间钢结构_膜结构_张拉膜_浙江萬豪空间结构集团有限公司 | 透平油真空滤油机-变压器油板框滤油机-滤油车-华之源过滤设备 | 螺杆式冷水机-低温冷水机厂家-冷冻机-风冷式-水冷式冷水机-上海祝松机械有限公司 | ph计,实验室ph计,台式ph计,实验室酸度计,台式酸度计 | 不锈钢水管-不锈钢燃气管-卫生级不锈钢管件-不锈钢食品级水管-广东双兴新材料集团有限公司 | 福州时代广告制作装饰有限公司-福州广告公司广告牌制作,福州展厅文化墙广告设计, | 拉力机-万能试验机-材料拉伸试验机-电子拉力机-拉力试验机厂家-冲击试验机-苏州皖仪实验仪器有限公司 | 硅胶制品-硅橡胶制品-东莞硅胶制品厂家-广东帝博科技有限公司 | 动库网动库商城-体育用品专卖店:羽毛球,乒乓球拍,网球,户外装备,运动鞋,运动包,运动服饰专卖店-正品运动品网上商城动库商城网 - 动库商城 | 广东西屋电气有限公司-广东西屋电气有限公司 | 电动葫芦|环链电动葫芦-北京凌鹰名优起重葫芦 | 深圳市简易检测技术有限公司| 西安文都考研官网_西安考研辅导班_考研培训机构_西安在职考研培训 | 搅拌磨|搅拌球磨机|循环磨|循环球磨机-无锡市少宏粉体科技有限公司 | 兰州UPS电源,兰州山特UPS-兰州万胜商贸 | 探鸣起名网-品牌起名-英文商标起名-公司命名-企业取名包满意 | 不锈钢酒柜|恒温酒柜|酒柜定制|酒窖定制-上海啸瑞实业有限公司 | 一体化污水处理设备,一体化污水设备厂家-宜兴市福源水处理设备有限公司 | 对辊式破碎机-对辊制砂机-双辊-双齿辊破碎机-巩义市裕顺机械制造有限公司 | 凝胶成像仪,化学发光凝胶成像系统,凝胶成像分析系统-上海培清科技有限公司 | 客服外包专业服务商_客服外包中心_网萌科技 | 高考志愿规划师_高考规划师_高考培训师_高报师_升学规划师_高考志愿规划师培训认证机构「向阳生涯」 | 石家庄救护车出租_重症转院_跨省跨境医疗转送_活动赛事医疗保障_康复出院_放弃治疗_腾康26年医疗护送转诊团队 | 海南在线 海南一家 | 冷凝水循环试验箱-冷凝水试验箱-可编程高低温试验箱厂家-上海巨为(www.juweigroup.com) | 二维运动混料机,加热型混料机,干粉混料机-南京腾阳干燥设备厂 | 上海logo设计| HYDAC过滤器,HYDAC滤芯,现货ATOS油泵,ATOS比例阀-东莞市广联自动化科技有限公司 | 苏州西朗门业-欧盟CE|莱茵UL双认证的快速卷帘门品牌厂家 | 定量包装秤,吨袋包装称,伸缩溜管,全自动包装秤,码垛机器人,无锡市邦尧机械工程有限公司 | 运动木地板价格,篮球馆体育运动木地板生产厂家_欧氏地板 | 选矿设备-新型重选设备-金属矿尾矿重选-青州冠诚重工机械有限公司 | 铝合金线槽_铝型材加工_空调挡水板厂家-江阴炜福金属制品有限公司 |