Home > Backend Development > PHP Tutorial > What is the difference between thread-safe and non-thread-safe versions of PHP?

What is the difference between thread-safe and non-thread-safe versions of PHP?

WBOY
Release: 2016-08-08 09:33:20
Original
995 people have browsed it

What is the difference between thread-safe and non-thread-safe versions of PHP?

Starting from version 5.2.1, the Windows version of PHP is divided into Thread Safe (thread safety) and None Thread Safe (NTS, non-thread safety). What is the difference between the two? Which one should be used? Here is a brief introduction.

Starting from the first Windows version of PHP 3.0.17 released on October 20, 2000, all versions are thread-safe. This is because unlike the Linux/Unix system that uses a multi-process working method, the Windows system uses a multi-process working method. How threads work. If you run PHP in CGI mode under IIS, it will be very slow. This is because the CGI mode is based on multi-process, not multi-thread. Generally, we will configure PHP to run in ISAPI mode. ISAPI is a multi-threaded mode, which is much faster. But there is a problem. Many commonly used PHP extensions are developed based on the multi-process thinking of Linux/Unix. When these extensions are run in ISAPI mode, they will go wrong and bring down IIS. Therefore, CGI mode is the safest way to run PHP under IIS, but CGI mode requires reloading and unloading the entire PHP environment for each HTTP request, and its consumption is huge.

In order to take into account the efficiency and security of PHP under IIS, Microsoft provides the FastCGI solution. FastCGI allows PHP processes to be reused instead of reopening a process for each new request. At the same time, FastCGI can also allow several processes to execute at the same time. This not only solves the problem of excessive consumption of CGI process mode, but also takes advantage of the fact that CGI process mode does not have thread safety issues.

Therefore, if you use ISAPI to run PHP, you must use the Thread Safe (thread safe) version; and if you use FastCGI mode to run PHP, there is no need to use thread safety check, use None Thread Safe (NTS, non-thread safe) version can better improve efficiency.

The above introduces the difference between the thread-safe and non-thread-safe versions of PHP, including the relevant aspects. I hope it will be helpful to friends who are interested in PHP tutorials.

Related labels:
source:php.cn
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template