Application of curl_multi in php multi-process
I believe many people have a headache about the functions of the curl_multi family that are unclear in PHP Manual. They have few documents and the examples given are so simple that you can’t learn from them. I have also I searched many web pages but could not find a complete application example.
curl_multi_add_handle
curl_multi_close
- ##curl_multi_exec
- curl_multi_getcontent ##curl_multi_info_read
- ##curl_multi_init
##curl_multi_remove_handle
curl_multi_select
-
Generally speaking, when you think of using these functions, the purpose should obviously be to request multiple URLs at the same time, rather than one by one. Request, otherwise it is better to
loop to adjust curl_exec yourself.
The steps are summarized as follows: Step one: Call curl_multi_init
Step two: Call curl_multi_add_handle in a loopIt should be noted in this step that the second parameter of curl_multi_add_handle is given by Subhandle from curl_init.
Step 3: Continuously call curl_multi_execStep 4: Cyclically call curl_multi_getcontent to obtain the results as needed
Step 5: Call curl_multi_remove_handle, and call curl_close for each word handle
Step 6: Call curl_multi_close
Here is a simple example found online, the author calls it
dir
ty example, (I will explain why dirty later):
/*
Here's a quick and dirty example for curl-multi from PHP, tested on PHP 5.0.0RC1 CLI / FreeBSD 5.2.1
*/
mains = array(
"http://www.cnn.com /", ($connomains as $i => $url) { $conn[$i]=curl_init($url);
curl_se
topt($conn[$i],CURLOPT_RETURNTRANSFER ,1); curl_multi_add_handle ($mh,$conn[$i]);
}
while
($active);
foreach ($connomains as $i => $url) {
print
_r($res);
interface
and usage in php It is indeed different from C.Change the do section above to the following:
do {
because ULTI_PERFORM);
While ($ Active and $ Mrc == CURLM_OK) { IF (CURL_MultI_SELECT ($ MH)! = --1) {
## Do {set
curl_setopt($ch, CURLOPT_
TIMEOUT, $timeout);
To determine whether there is a timeout or other errors, use: curl_error($conn[$i] before curl_multi_getcontent );
The above is the detailed content of Application of curl_multi in php multi-process. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

As a highly concurrent programming language, Golang's built-in coroutine mechanism and multi-threaded operations enable lightweight multi-tasking. However, in a multi-process processing scenario, communication and shared memory between different processes have become key issues in program development. This article will introduce the application method of realizing shared memory between multiple processes in Golang. 1. How to implement multi-process in Golang In Golang, multi-process concurrent processing can be implemented in a variety of ways, including fork, os.Process,

Everyone knows that Node.js is single-threaded, but they don’t know that it also provides a multi-thread module to speed up the processing of some special tasks. This article will lead you to understand the multi-threading of Node.js, hoping to learn more about it. Everyone helps!

Golang is a multi-process, and its thread model is the MPG model. Overall, Go processes and kernel threads correspond to many-to-many, so first of all, they must be multi-threaded. Golang has some so-called M ratio N model. N go routines can be created under M threads. Generally speaking, N is much larger than M. It is essentially a multi-threaded model. However, the scheduling of coroutines is determined by the runtime of Go. It is emphasized that developers should Use channels for synchronization between coroutines.

Locks and Synchronization in Concurrent Programming In concurrent programming, multiple processes or threads run simultaneously, which can lead to resource contention and inconsistency issues. To solve these problems, locks and synchronization mechanisms are needed to coordinate access to shared resources. Concept of Lock A lock is a mechanism that allows only one thread or process to access a shared resource at a time. When one thread or process acquires a lock, other threads or processes are blocked from accessing the resource until the lock is released. Types of locks There are several types of locks in python: Mutex lock (Mutex): ensures that only one thread or process can access resources at a time. Condition variable: Allows a thread or process to wait for a certain condition and then acquire the lock. Read-write lock: allows multiple threads to read resources at the same time, but only allows one thread to write resources

This article brings you relevant knowledge about PHP, which mainly introduces issues related to PHP multi-process development. Here is a summary of some multi-process development issues for you, with answers. Let’s take a look at them together. I hope it will be helpful to everyone. helpful.

How to implement multi-process in node? How to deploy node project? The following article will help you master the relevant knowledge of Node.js multi-process model and project deployment. I hope it will be helpful to you!

Golang Concurrent Programming Tips: In-depth Analysis of the Multi-Process Model In the field of concurrent programming, Golang, as a powerful programming language, is favored by developers for its concise syntax and built-in concurrency support. In Golang, concurrent programming can be easily implemented using goroutine and channel, improving program performance and efficiency. However, in some specific scenarios, using the multi-process model is also an effective concurrent programming method. This article will provide an in-depth analysis of how to use Golang

With the improvement of computer performance and the popularity of multi-core processors, multi-process programming has gradually become an indispensable part of the modern programming field. In the Go language, multi-process programming is also very easy to implement. This article will introduce how to use multi-process in Go. 1. Goroutines In the Go language, concurrent programming can be achieved through Goroutines. "Goroutine" can be regarded as a "lightweight thread" in the Go language. Goroutines are scheduled by the Go runtime, and
