1. 程式人生 > >PHP Curl多執行緒原理例項詳解

PHP Curl多執行緒原理例項詳解


<?php 
// 建立一對cURL資源 
$ch1 = curl_init(); 
$ch2 = curl_init(); 

// 設定URL和相應的選項 
curl_setopt($ch1, CURLOPT_URL, "http://www.jb51.net/"); 
curl_setopt($ch1, CURLOPT_HEADER, 0); 
curl_setopt($ch2, CURLOPT_URL, "http://www.php.net/"); 
curl_setopt($ch2, CURLOPT_HEADER, 0); 

// 建立批處理cURL控制代碼 
$mh = curl_multi_init(); 

// 增加2個控制代碼 
curl_multi_add_handle($mh,$ch1); 
curl_multi_add_handle($mh,$ch2); 

$active = null; 
// 執行批處理控制代碼 
do { 
    $mrc = curl_multi_exec($mh, $active); 
} while ($mrc == CURLM_CALL_MULTI_PERFORM); 

while ($active && $mrc == CURLM_OK) { 
    if (curl_multi_select($mh) != -1) { 
        do { 
            $mrc = curl_multi_exec($mh, $active); 
        } while ($mrc == CURLM_CALL_MULTI_PERFORM); 
    } 


// 關閉全部控制代碼 
curl_multi_remove_handle($mh, $ch1); 
curl_multi_remove_handle($mh, $ch2); 
curl_multi_close($mh); 
?>

相關推薦

PHP Curl執行原理例項

<?php  // 建立一對cURL資源  $ch1 = curl_init();  $ch2 = curl_init();  // 設定URL和相應的選項  curl_setopt($ch1, CURLOPT_URL, "http://www.jb51.net/");  curl_setopt($

Java執行——synchronized使用

一 前言 Java多執行緒是面試必考的知識點,哈哈,說的有點太絕對了,題外話不說那麼多了,今天我們就來了解一下Java多執行緒中的synchronized。 synchronized相信大家都看過或者用過,synchronized是Java中的關鍵字,synchronized可以

ThreadLocal 執行環境使用

ThreadLocal 介紹 ThreadLocal  就是一個Map。key - > Thread.getCurrentThread()。value - > 執行緒需要儲存的變數。在多執行緒環境中,相當於各自執行緒的一個內部map變數。 每個

執行屬性pthread_attr

Posix執行緒中的執行緒屬性pthread_attr_t主要包括scope屬性、detach屬性、堆疊地址、堆疊大小、優先順序。在pthread_create中,把第二個引數設定為NULL的話,將採用預設的屬性配置。 執行緒屬性結構如下: typedef s

Java執行---阻塞佇列(舉例說明)

一. 前言   在新增的Concurrent包中,BlockingQueue很好的解決了多執行緒中,如何高效安全“傳輸”資料的問題。通過這些高效並且執行緒安全的佇列類,為我們快速搭建高質量的多執行緒程式帶來極大的便利。本文詳細介紹了BlockingQueue家庭中的所有成員

java執行小示例

package com.chillax.controller; import java.io.IOException; public class MultiThread { public static void main(String[] args) { System.out.p

執行傳參

1.傳遞臨時物件做執行緒引數 1.1要避免的陷阱1 用detach()時,如果主執行緒先結束,變數就會被回收;所以用detach()的話,不推薦用引用,同時絕對不能用指標。 1.2要避免的陷阱2 只要臨時物件的用臨時構造A類物件作為引數傳遞給執行緒,那麼就一定能夠在主執行緒結束之

執行安全問題

在上一篇部落格中已經提到了什麼是多執行緒:https://blog.csdn.net/weixin_42647847/article/details/80969240那多執行緒在java中是如何實現的呢。一、實現多執行緒的四種方式1.繼承Thread類,重寫run方法2.實現

JAVA執行 join() 方法及應用場景

在某些情況下,主執行緒建立並啟動了子執行緒,如果子執行緒中需要進行大量的耗時運算,主執行緒往往將早於子執行緒結束之前結束,如果主執行緒想等待子執行緒執行完畢後,獲得子執行緒中的處理完的某個資料,就要用

NET執行同步方法(五):訊號量(Semaphore)

   訊號量就像一個夜總會:它有確切的容量,並被保鏢控制。一旦滿員,就沒有人能再進入,其他人必須在外面排隊。那麼在裡面離開一個人後,隊頭的人就可以進入。訊號量的建構函式需要提供至少兩個引數-現有的人數和最大的人數。 訊號

執行】BlockingQueue

前言:      在新增的Concurrent包中,BlockingQueue很好的解決了多執行緒中,如何高效安全“傳輸”資料的問題。通過這些高效並且執行緒安全的佇列類,為我們快速搭建高質量的多執行緒程式帶來極大的便利。本文詳細介紹了BlockingQueue家庭中的所有成員

Android 開發之執行處理——Handler

    Android開發過程中為什麼要多執行緒     我們建立的Service、Activity以及Broadcast均是一個主執行緒處理,這裡我們可以理解為UI執行緒。但是在操作一 些耗時操作時,比如I/O讀寫的大檔案讀寫,資料庫操作以及網路下載需要很長時間,為了不

Java執行-Thread.yield

http://blog.csdn.net/dabing69221/article/details/17426953 Thread.yield( )方法: 使當前執行緒從執行狀態(執行狀態)變為可執行態(就緒狀態)。cpu會從眾多的可執行態裡選擇,也就是說,當前也就

java執行-join方法(附面試題)

本文對java Thread中join()方法進行介紹,join()的作用是讓“主執行緒”等待“子執行緒”結束之後才能繼續執行,大家參考使用吧 本章涉及到的內容包括: 1. join()

C++11執行(七):《 三:std::future & std::shared_future》

#include <iostream>                // std::cout #include <future>                // std::async, std::future #include <chrono>            

理解 JAVA執行技術之

1.    虛假的多執行緒     例1:     public class TestThread     {     int i=0, j=0;     public void go(int flag){     while(true){     try{    

C++執行函式CreateThread()

採用CreateThread()建立多執行緒程式 原創 2012年12月10日 11:44:59

40道阿里巴巴JAVA研發崗執行面試題,你能答出多少

1、多執行緒有什麼用? 一個可能在很多人看來很扯淡的一個問題:我會用多執行緒就好了,還管它有什麼用?在我看來,這個回答更扯淡。

java架構之路(執行)synchronized以及鎖的膨脹升級過程

  上幾次部落格,我們把volatile基本都說完了,剩下的還有我們的synchronized,還有我們的AQS,這次部落格我來說一下synchronized的使用和原理。   synchronized是jvm內部的一把隱式鎖,一切的加鎖和解鎖過程是由jvm虛擬機器來控制的,不需要我們認為的干預,我們大致從瞭

Java執行之volatile

## 本文目錄 - 從多執行緒交替列印A和B開始 - Java 記憶體模型中的可見性、原子性和有序性 - Volatile原理 - volatile的特性 - volatile happens-before規則 - volatile 記憶體語義 - volatile 記憶體語義