Home > Article > Backend Development > Difference between NTS and TS for PHP?
What is the difference between NTS and TS for PHP?
The difference between NTS and TS of PHP: the former can use a locking mechanism when accessed by multiple threads, so that there will be no data inconsistency or data pollution, while the latter does not provide data access Protection, so dirty reads of data may occur, but it will have better performance.
ts (Thread-Safety) means thread safety. When accessed by multiple threads, a locking mechanism is adopted. When a thread accesses certain data of this class, it is protected and other threads cannot access it until this thread After reading, other threads can use it. There will be no data inconsistency or data pollution. When php is loaded in ISAPI mode, select this version. When php is loaded in ISAPI mode, select this version.
nts (None-Thread Safe) is not thread-safe, that is Data access protection is not provided, and it is possible that multiple threads may change data successively, resulting in dirty data. When php is run in fast cgi mode, choose this version for better performance;
ISAPI (Internet Server Application Programming Interface), usually refers to being loaded by the http server and running in the form of a server module. It was proposed by Microsoft, so it can only run on the win platform, such as apache and iis under win [it is said that working in fast cgi mode is more stable ], while php on Linux runs as an Apache module or php-fpm.
cgi (Common Gateway Interface): A tool for the HTTP server to "talk" with your program or other machines. To put it bluntly, cgi is a background language that can communicate with the server. communication. At this time, php is running as an independent program. The characteristic is that it consumes memory.
fast cgi. It is a long-live CGI. It can be executed all the time. As long as it is activated, it will not take time to fork every time. This method is independent of language. A CGI open extension with a scalable architecture whose main behavior is to keep the CGI interpreter process in memory and thus obtain higher performance.
ISAPI execution method is used in the form of a DLL dynamic library, which can be executed after being requested by the user. It will not disappear immediately after processing a user request, so thread safety checks are required to improve the program's performance. Execution efficiency, so if you are using ISAPI to execute PHP, it is recommended to choose the ThreadSafe version.
The FastCGI execution method uses a single thread to perform operations, so there is no need to perform thread safety checks. Removing the protection of thread safety checks can improve execution efficiency. Therefore, if FastCGI is used to execute PHP, it is recommended Select the NonThread Safe version.
Check the Thread Safety item through phpinfo();. This item is to check whether it is thread safe. If it is: enabled, generally speaking it should be the ts version, otherwise it is the nts version.
Recommended tutorial: "PHP"
The above is the detailed content of Difference between NTS and TS for PHP?. For more information, please follow other related articles on the PHP Chinese website!