Home Backend Development PHP Tutorial PHP implements non-blocking and multi-threaded programming

PHP implements non-blocking and multi-threaded programming

Jul 20, 2018 pm 05:09 PM
php implementation

PHP multi-threaded programming implementation and non-blocking implementation. PHP does not support multi-threading by default. To use multi-threading, you need to install the pthread extension. After installation, you can perform multi-thread programming.

Thread concept

Thread is the smallest unit that the operating system can schedule

A multi-threaded program is more likely to be scheduled by the operating system than a single-threaded program Larger, so multi-threaded programs are generally more efficient than single-threaded programs;

Multiple threads of a multi-threaded program can run on multiple cores of a multi-core CPU at the same time, taking full advantage of the multi-core machine;

The system overhead of creating and switching threads is smaller than that of processes, so it is more efficient than multiple processes to a certain extent;

Threads are born with shared memory space, and communication between threads is simpler. Avoids the introduction of new complexity by process IPC.

When to use threads

I/O blocking will cause the operating system to schedule tasks and block the current task, so when there is a lot of I/O in the code, When using multi-threading, the code can be parallelized

Multi-threading can make full use of the CPU, so when there are multiple large calculation codes, you can also use multi-threading to execute them in parallel

Use The good and bad of threads

The thread safety implemented by PHP mainly uses the TSRM mechanism to isolate global variables and static variables, and copies global variables and static variables to each thread. Each thread uses a backup of the main thread, thus avoiding variable conflicts and thread safety issues.

Once the sub-thread starts running, the main thread can no longer adjust the details of the sub-thread running

Extended installation

PHP does not support multiple by default Threads. To use multi-threading, you need to install the pthread extension. To install the pthread extension, you must use the --enable-maintainer-zts parameter to recompile PHP. This parameter specifies the thread safety method when compiling PHP.

1

./configure --enable-maintainer-zts --with-tsrm-pthreads

Copy after login

Example

1

2

3

4

5

6

7

8

9

10

11

12

class Request extends Thread {    public $url;    public $response;    public function __construct($url) {        $this->url = $url;

    }    public function run() {        $this->response = file_get_contents($this->url);

    }

}

$chG = new Request("www.google.com");

$chB = new Request("www.baidu.com");

$chG ->start();

$chB ->start();

$chG->join();

$chB->join();

$gl = $chG->response;

$bd = $chB->response;

Copy after login

PHP non-blocking

Use fastcgi_finish_request()

1

2

3

4

echo "program start...";

fastcgi_finish_request();

sleep(1);echo 'debug1...';

sleep(10);echo 'debug2...';

Copy after login

Use fsockopen( )
stream_set_blocking()

Use cURL
$cmh = curl_multi_init();

Use Gearman/Swoole extension

Use cache and queue
redis

Calling system commands
$cmd = 'nohup php ./processd.php $someVar >/dev/null &';

Use pcntl_fork()

PHP native support
yield

Related recommendations:

php install threads multi-thread extension, phpthreads multi-thread

The above is the detailed content of PHP implements non-blocking and multi-threaded programming. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

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

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

How to control cache expiration time in PHP? How to control cache expiration time in PHP? Jun 19, 2023 pm 11:23 PM

With the popularity of Internet applications, website response speed has become more and more of a focus for users. In order to quickly respond to user requests, websites often use caching technology to cache data, thereby reducing the number of database queries. However, cache expiration time has an important impact on response speed. This article will discuss methods of controlling cache expiration time to help PHP developers better apply caching technology. 1. What is cache expiration time? Cache expiration time refers to the time when the data in the cache is considered expired. It determines when the data in the cache is needed

How to use PHP to implement file conversion and format conversion functions How to use PHP to implement file conversion and format conversion functions Sep 05, 2023 pm 03:40 PM

How to use PHP to implement file conversion and format conversion functions 1. Introduction In the process of developing web applications, we often need to implement file conversion and format conversion functions. Whether you are converting image files to other formats or converting text files from one encoding to another, these operations are common needs. This article will describe how to implement these functions using PHP, with code examples. 2. File conversion 2.1 Convert image files to other formats In PHP, we can use

User privacy protection of online voting system implemented in PHP User privacy protection of online voting system implemented in PHP Aug 09, 2023 am 10:29 AM

User privacy protection of online voting system implemented in PHP With the development and popularization of the Internet, more and more voting activities have begun to be moved to online platforms. The convenience of online voting systems brings many benefits to users, but it also raises concerns about user privacy leaks. Privacy protection has become an important aspect in the design of online voting systems. This article will introduce how to use PHP to write an online voting system, and focus on the issue of user privacy protection. When designing and developing an online voting system, the following principles need to be followed to ensure

How to use PHP to implement user registration function How to use PHP to implement user registration function Sep 25, 2023 pm 06:13 PM

How to use PHP to implement user registration function In modern network applications, user registration function is a very common requirement. Through the registration function, users can create their own accounts and use corresponding functions. This article will implement the user registration function through the PHP programming language and provide detailed code examples. First, we need to create an HTML form to receive the user's registration information. In the form, we need to include some input fields, such as username, password, email, etc. Form fields can be customized according to actual needs.

How to use PHP to implement mobile adaptation and responsive design How to use PHP to implement mobile adaptation and responsive design Sep 05, 2023 pm 01:04 PM

How to use PHP to implement mobile adaptation and responsive design Mobile adaptation and responsive design are important practices in modern website development. They can ensure good display effects of the website on different devices. In this article, we will introduce how to use PHP to implement mobile adaptation and responsive design, with code examples. 1. Understand the concepts of mobile adaptation and responsive design Mobile adaptation refers to providing different styles and layouts for different devices based on the different characteristics and sizes of the device. Responsive design refers to the use of

Implementation principle of consistent hash algorithm for PHP data cache Implementation principle of consistent hash algorithm for PHP data cache Aug 10, 2023 am 11:10 AM

Implementation Principle of Consistent Hash Algorithm for PHP Data Cache Consistent Hashing algorithm (ConsistentHashing) is an algorithm commonly used for data caching in distributed systems, which can minimize the number of data migrations when the system expands and shrinks. In PHP, implementing consistent hashing algorithms can improve the efficiency and reliability of data caching. This article will introduce the principles of consistent hashing algorithms and provide code examples. The basic principle of consistent hashing algorithm. Traditional hashing algorithm disperses data to different nodes, but when the node

How to implement fingerprint login for WeChat mini program in PHP How to implement fingerprint login for WeChat mini program in PHP May 31, 2023 pm 10:40 PM

With the continuous development of WeChat mini programs, more and more users are beginning to choose WeChat mini programs to log in. In order to improve users’ login experience, WeChat mini programs began to support fingerprint login. In this article, we will introduce how to use PHP to implement fingerprint login for WeChat mini programs. 1. Understand the fingerprint login of WeChat mini programs On the basis of WeChat mini programs, developers can use WeChat's fingerprint recognition function to allow users to log in to WeChat mini programs through fingerprints, thereby improving the security and convenience of the login experience. 2. Preparation work is implemented using PHP

PHP implementation of WeChat applet operation flow chart techniques PHP implementation of WeChat applet operation flow chart techniques May 31, 2023 pm 07:51 PM

With the rapid development of the mobile Internet, WeChat mini programs are becoming more and more popular among users, and PHP, as a powerful programming language, also plays an important role in the development process of mini programs. This article will introduce the techniques of implementing WeChat applet operation flow chart in PHP. Obtain access_token During the development process of using WeChat applet, you first need to obtain access_token, which is an important credential for realizing the operation of WeChat applet. The code to obtain access_token in PHP is as follows: f

See all articles