精品专区-精品自拍9-精品自拍三级乱伦-精品自拍视频-精品自拍视频曝光-精品自拍小视频

網(wǎng)站建設(shè)資訊

NEWS

網(wǎng)站建設(shè)資訊

php多線程如何使用?

PHP本身是不是支持多線程的,不過(guò)我們可以借助其他的方法來(lái)實(shí)現(xiàn)多線程,比如shell服務(wù)和web 服務(wù)器,本文我們來(lái)講講這兩個(gè)方法如何實(shí)現(xiàn)。需要的朋友可以來(lái)參考一下。多線程是java中一個(gè)很不錯(cuò)的東西,很多朋友說(shuō)在php中不可以使用PHP多線程了,其實(shí)那是錯(cuò)誤的說(shuō)法PHP多線程實(shí)現(xiàn)方法和fsockopen函數(shù)有關(guān),當(dāng)有人想要實(shí)現(xiàn)并發(fā)功能時(shí),他們通常會(huì)想到用fork或者spawn threads,并且你會(huì)得到比用 fork 或 thread 更好的性能。下面就由創(chuàng)新互聯(lián)建站小編和大家講一講php多線程如何使用。

創(chuàng)新互聯(lián)專注于企業(yè)全網(wǎng)營(yíng)銷推廣、網(wǎng)站重做改版、陽(yáng)江網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5網(wǎng)站設(shè)計(jì)電子商務(wù)商城網(wǎng)站建設(shè)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為陽(yáng)江等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。一、php多線程如何使用?

1、在PHP里使用shell_exec的函數(shù),以shell的方式,啟動(dòng)一個(gè)獨(dú)立的PHP腳本執(zhí)行。這種方式,其實(shí)相當(dāng)于在Web服務(wù)器處理過(guò)程中,獨(dú)立起了一個(gè)shell進(jìn)程處理你的任務(wù)。這里,需要特別注意的是shell_exec的服務(wù)器安全,注意校驗(yàn)參數(shù),小心避免被帶入shell命令中。這個(gè)是比較容易實(shí)現(xiàn)的方式。綿陽(yáng)服務(wù)器托管

2、使用PHP實(shí)現(xiàn)一個(gè)Server,監(jiān)聽一個(gè)端口,為Web端提供服務(wù)。這里的實(shí)現(xiàn)方式有很多,通常要配合擴(kuò)展,例如原生的pthread(多線程),開源擴(kuò)展swoole等等。

直接在web程序里使用多線程,是不恰當(dāng)?shù)模瑆eb請(qǐng)求通常有時(shí)間限制,例如timeout默認(rèn)是30秒。你如何保證,在線程任務(wù)執(zhí)行完之前,它的父進(jìn)程仍然在工作?

二、下面是PHP5中的解決方法:

它運(yùn)行的很好,但是在fsockopen()分析完hostname并且建立一個(gè)成功的連接(或者延時(shí)$timeout秒)之前,擴(kuò)充這段代碼來(lái)管理大量服務(wù)器將耗費(fèi)很長(zhǎng)時(shí)間。

因此我們必須放棄這段代碼;我們可以建立異步連接-不需要等待fsockopen返回連接狀態(tài)。PHP仍然需要解析hostname(所以直接使用ip更加明智),不過(guò)將在打開一個(gè)連接之后立刻返回,繼而我們就可以連接下一臺(tái)服務(wù)器。

有兩種方法可以實(shí)現(xiàn);PHP5中可以使用新增的stream_socket_client()函數(shù)直接替換掉fsocketopen()。PHP5之前的版本,你需要自己動(dòng)手,用sockets擴(kuò)展解決問(wèn)題。

三、我們用stream_select()等待sockets打開的連接事件

stream_select()調(diào)用系統(tǒng)的select(2)函數(shù)來(lái)工作:前面三個(gè)參數(shù)是你要使用的streams的數(shù)組;你可以對(duì)其讀取,寫入和獲取異常(分別針對(duì)三個(gè)參數(shù))。stream_select()可以通過(guò)設(shè)置$timeout(秒)參數(shù)來(lái)等待事件發(fā)生-事件發(fā)生時(shí),相應(yīng)的sockets數(shù)據(jù)將寫入你傳入的參數(shù)。

下面是PHP4.1.0之后版本的實(shí)現(xiàn),如果你已經(jīng)在編譯PHP時(shí)包含了sockets(ext/sockets)支持,你可以使用根上面類似的代碼,只是需要將上面的streams/filesystem函數(shù)的功能用ext/sockets函數(shù)實(shí)現(xiàn)。主要的不同在于我們用下面的函數(shù)代替stream_socket_client()來(lái)建立連接:

現(xiàn)在用socket_select()替換掉stream_select(),用socket_read()替換掉fread(),用socket_write()替換掉fwrite(),用socket_close()替換掉fclose()就可以執(zhí)行腳本了!

PHP5的先進(jìn)之處在于,你可以用stream_select()處理幾乎所有的stream-例如你可以通過(guò)include STDIN用它接收鍵盤輸入并保存進(jìn)數(shù)組,你還可以接收通過(guò)proc_open()打開的管道中的數(shù)據(jù)。小伙伴們要想獲得更多php多線程的內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)!
網(wǎng)站名稱:php多線程如何使用?
當(dāng)前鏈接:http://m.jcarcd.cn/article/sddhpd.html
主站蜘蛛池模板: 国产重口| 国产又爽| 97国产婷婷综合视 | 日韩种子 | 欧美一级大黄特黄 | 日韩欧美国产aⅴ | 福利小视频导航 | www.逼福利| 日韩午夜a级剧场 | 三级欧美综合影视 | 日本亲近相奷中 | 国产专业剧情a | 欧性猛交| 国产真实九 | 亚洲无码精品二 | 成人七区免费观看 | 国产精品精品国产 | 欧洲日韩极速播放 | 精品视频免费 | 女同69| 国产美女精品视 | 欧美最猛性 | 日韩经典 | 91啪日韩一区二区 | 精品露脸| 无码久久综合免费 | 日本高清色频 | 国产福利免费观看v | 国产高清亚| 欧洲亚洲日韩精品 | 91网址| 青青草国产精品视频 | 成人午夜福利影视 | 日产精品| 国产综合在线观看 | 精品乱伦中文国产 | 日本夜爽爽| 国产精品地址一 | 国产亚洲欧美性爱 | 午夜日韩绝美 | 国产毛多 |