首頁 後端開發 php教程 php多進程中curl_multi的應用

php多進程中curl_multi的應用

May 28, 2017 am 09:37 AM
多行程

相信許多人對PHP手冊中語焉不詳的curl_multi一族的函數頭疼不已,它們文檔少,給的例子 更是簡單的讓你無從借鑒,我也曾經找了許多網頁,都沒見一個完整的應用範例。

  • curl_multi_add_handle

  • curl_multi_close

  • #curl_multi_exec

  • ##curl_multi_exec
  • curl_multi_exec

  • curl_multi_exec
  • #curl_multi_getcontent

curl_multi_info_read

##curl_multi_init




##curl_multi_init


curl_multi_remove_handle

curl_multi_select#############一般來說,當想到要用這些函數時,目的顯然應該是同時請求多個url,而不是一個依次請求,否則不如自己#​​##循環###去調curl_exec好了。 ######步驟總結如下:######第一步:呼叫curl_multi_init###第二步:循環呼叫curl_multi_add_handle###這一步要注意的是,curl_multi_add_handle的第二個參數是由curl_init而來的子handle。 ###第三步:持續呼叫curl_multi_exec###第四步:根據需要循環呼叫curl_multi_getcontent取得結果###第五步:呼叫curl_multi_remove_handle,並為每個字handle呼叫curl_close###第六步:呼叫curl_multi_close######這裡有一個網路上找的簡單例子,其作者稱為###dir###ty的例子,(稍後我會說明為何dirty):###

php多進程中curl_multi的應用/*<br/><img src=for curl-multi from PHP, tested on PHP 5.0.0RC1 #*/
php多進程中curl_multi的應用<br/><img src=array("http://www.cnn.com /",
php多進程中curl_multi的應用php多進程中curl_multi的應用php多進程中curl_multi的應用);<br/><img src=     $conn[$i]=curl_init($url);
      curl_sephp多進程中curl_multi的應用#top<br/>t($conn[$i],CURLOPT_<img src=RETURNd ,1);      curl_multi_add_handle ($mh,$conn[$i]);
#}php多進程中curl_multi的應用<br/><img src=do { $n=curl_##}
php多進程中curl_multi的應用<br/> mh,$active); } <img src=

      $res[$i]=curl_multi_getcontent($conn[$i]);

      curl_close($conn[$i]);

###}######### ######print###_r($res);###### ######整個使用過程差不多就是這樣,但是,這個簡單程式碼有個致命弱點,就是在do循環的那段,在整個url請求期間是個死循環,它會輕易導致CPU佔用100%。 ######現在我們來改進它,這裡要用到一個幾乎沒有任何文檔的函數curl_multi_select了,雖然C的curl函式庫對select有說明,但是,php裡的###介面####和用法的確與C中有不同。 ######把上面do的段落改成下面這樣:###

php多進程中curl_multi的應用                do {<br/><img src=_MULTI_PERFORM);
                while ($active and $mrc == CURLM_OK) {- if (curl_multi_select($mh) != -1) {php多進程中curl_multi的應用<br/>                   #                                                                , while ($mrc == CUR_CALL_MULTI} while ($mrc == CUR_CALL_MULTI} while ($mrc == CUR_CALL_MULTIULNUL#            }<img src=
#

以上是php多進程中curl_multi的應用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Golang函數的多進程之間共享記憶體的應用方法 Golang函數的多進程之間共享記憶體的應用方法 May 17, 2023 pm 12:52 PM

Golang作為一門高並發程式語言,其內建的協程機制和多執行緒操作實現了輕量級的多工處理。然而,在多進程處理的場景下,不同進程之間的通訊和共享記憶體成為了程式開發的關鍵問題。本文將介紹在Golang中實作多進程之間共享記憶體的應用方法。一、Golang中多進程的實作方式在Golang中,可以透過多種方式實現多進程並發處理,其中包括fork、os.Process、

聊聊Node.js中的多進程和多線程 聊聊Node.js中的多進程和多線程 Jul 25, 2022 pm 07:45 PM

大家都知道Node.js 是單線程的,卻不知它也提供了多進(線)程模組來加速處理一些特殊任務,本文便帶領大家了解下Node.js 的多進(線)程,希望對大家有幫助!

golang是多進程嗎 golang是多進程嗎 Jul 07, 2023 am 10:18 AM

golang是多行程,其執行緒模型是MPG模型,整體上Go程與內核執行緒是多對多對應的,因此首先來講就一定是多執行緒的。 Golang有些所謂的M比N模型,M個執行緒下可以創建N個go routine,一般而言N遠大於M,本質上屬於多執行緒模型,但是協程的調度由Go的runtime決定,強調開發者應該使用channel進行協程之間的同步。

Python 並發程式設計中的鎖與同步:保持你的程式碼安全可靠 Python 並發程式設計中的鎖與同步:保持你的程式碼安全可靠 Feb 19, 2024 pm 02:30 PM

並發程式設計中的鎖定與同步在並發程式設計中,多個行程或執行緒同時執行,這可能會導致資源爭用和不一致性問題。為了解決這些問題,需要使用鎖定和同步機制來協調對共享資源的存取。鎖的概念鎖是一種機制,它允許一次只有一個執行緒或程序存取共享資源。當一個執行緒或程序獲得鎖時,其他執行緒或程序將被阻止存取該資源,直到鎖被釋放。鎖的類型python中有幾種類型的鎖:互斥鎖(Mutex):確保一次只有一個執行緒或程序可以存取資源。條件變數:允許執行緒或行程等待某個條件,然後取得鎖定。讀寫鎖:允許多個執行緒同時讀取資源,但只允許一個執行緒寫入資

總結有關PHP多進程開發面試常見問題(附答案) 總結有關PHP多進程開發面試常見問題(附答案) Dec 21, 2022 pm 05:30 PM

這篇文章為大家帶來了關於PHP的相關知識,其中主要介紹了有關PHP多進程開發的相關問題,這裡給大家總結了一些多進程開發問題,附答案,下面一起來看一下,希望對大家有幫助。

詳解node如何實現多進程?如何部署node專案? 詳解node如何實現多進程?如何部署node專案? Aug 03, 2022 pm 08:23 PM

node如何實現多進程?如何部署node專案?以下這篇文章帶大家掌握Node.js 多進程模型與專案部署的相關知識,希望對大家有幫助!

Golang並發程式設計技巧:深入解析多進程模型 Golang並發程式設計技巧:深入解析多進程模型 Feb 29, 2024 am 10:36 AM

Golang並發程式設計技巧:深入解析多進程模型在並發程式設計領域,Golang作為一門強大的程式語言,以其簡潔的語法和內建的並發支援而備受開發者青睞。在Golang中,利用goroutine和channel可以輕鬆實現並發編程,提高程式效能和效率。然而,在一些特定場景下,使用多進程模型也是一種有效的並發程式設計方式。本文將深入解析在Golang中如何

如何在Go中使用多進程? 如何在Go中使用多進程? May 11, 2023 pm 03:24 PM

隨著電腦效能的提升和多核心處理器的普及,多進程程式設計已經逐漸成為了現代程式設計領域中不可或缺的一部分。在Go語言中,多進程程式設計也是非常容易實現的。本文將介紹如何在Go中使用多進程。一、Goroutines在Go語言中,可以透過Goroutines實現並發程式設計。 「Goroutine」可以看作是Go語言中的「輕量級線程」。 Goroutines是由Go運行時進行調度,而

See all articles