Home >Backend Development >PHP Tutorial >How to implement multi-threading in php

How to implement multi-threading in php

不言
不言Original
2019-01-25 14:18:0731879browse

Multi-threading can be implemented in How to implement multi-threading in php, which uses the old exec function to achieve multi-threading through asynchronous processing. The exec function itself is a How to implement multi-threading in php function that executes external programs. Let's take a closer look at how to implement PHP multi-threading.

Recommended Manual: How to implement multi-threading in php complete self-study manual

How to implement multi-threading in php

Let’s first look at an example

<?How to implement multi-threading in php
 
class execMulti {
    function MultithreadTest {
        exec("How to implement multi-threading in php static_massive.How to implement multi-threading in php > /dev/null &");
 
        echo "处理完成了";
    }
}
?>

When the above operation is performed, the processing completion is displayed even before the time-consuming processing ends.

exec("How to implement multi-threading in php static_massive.How to implement multi-threading in php > /dev/null &");

Since the value returned by ">/dev/null&" is missing, we will not wait for a response.

Therefore, processing completion indication is faster than time-consuming processing.

However, this method does not know when the time-consuming processing will end.

Don’t forget to consider using log execution, logging in to DB and other methods to deliver execution results to users.

Methods for multi-threading (pthreads)

Finally, the method of using the PHP extension module pthreads is introduced.

It can be simpler than the above method using exec.

①Configure the environment and install How to implement multi-threading in php

Please use vagrant etc. to prepare your favorite environment.

How to implement multi-threading in php needs to use the thread-safe version, which is a multi-threaded and safe implementation.

Download the thread-safe version of PHP from the official website.

Access the content below and download from the red box in the picture.

http://www.How to implement multi-threading in php.net/downloads.How to implement multi-threading in php

How to implement multi-threading in php

Additionally, for thread-safe installation, you need to specify -enable- using the configure option maintainer-zts.

./configure --enable-maintainer-zts

You can also install Apache and mysql options as needed.

Just use the following command to confirm the How to implement multi-threading in php version.

How to implement multi-threading in php -v

②pthreads installation

Let’s download the zip format.

https://github.com/krakjoe/pthreads/archive/master.zip

Extract the zip, move to the unzipped file, and execute How to implement multi-threading in phpize.

If you are running pthreads on the PHP module list, you can do the following.

How to implement multi-threading in php -m

Depending on the environment, the settings in this area will be different. You can use the environment name pthreads, etc. to search to find information.

③ Try to use multi-threading

The example is as follows

<?How to implement multi-threading in php
class pthreadsTest extends Thread {
    public function run () {
        sleep(5);
    }
}
$ts1 = new pthreadsTest();
$ts1->start(); 
$ts2 = new pthreadsTest();
$ts2->start(); 
?>

Because sleep(5) is called twice, it takes 10 seconds, But actually it will be 5 seconds.

Recommended related articles:
1.How to implement multi-threading in PHP
2.Three ways to implement multi-threading in How to implement multi-threading in php        
Related video recommendations:
1.Dugu Jiujian(4)_PHP video tutorial

The above is the detailed content of How to implement multi-threading in php. For more information, please follow other related articles on the PHP Chinese website!

Statement:
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