>  기사  >  백엔드 개발  >  PHP에서 nts는 무엇을 의미합니까?

PHP에서 nts는 무엇을 의미합니까?

青灯夜游
青灯夜游원래의
2021-09-02 18:59:346867검색

PHP에서 nts는 "비스레드 안전"을 의미합니다. 이는 데이터 액세스 보호를 제공하지 않으며 실행 중에 스레드(스레드) 보안 검사를 수행하지 않음을 의미합니다. 이로 인해 여러 스레드가 차례로 데이터를 변경할 수 있습니다. , 그 결과 더티 데이터가 발생합니다.

PHP에서 nts는 무엇을 의미합니까?

이 튜토리얼의 운영 환경: Windows 7 시스템, PHP 7.1 버전, DELL G3 컴퓨터

nts 전체 이름은 one-Thread Safe이며, 이는 스레드로부터 안전하지 않습니다. 즉, 데이터를 제공하지 않습니다. 액세스 보호 및 실행 중에 스레딩이 수행되지 않음(스레드) 보안 검사 여러 스레드가 연속적으로 데이터를 변경하여 더티 데이터가 발생할 수 있습니다.

비스레드 안전성이 있으므로 스레드 안전성(Thread Safe)도 있습니다.

Thread Safe는 스레드 안전을 의미합니다. 새로운 요구 사항이 시스템 리소스를 소진할 때 새 스레드를 시작하는 CGI 실행 방법을 방지하기 위해 실행 중에 스레드 안전 검사가 수행됩니다.

PHP 스레드 안전성과 비스레드 안전성의 차이점:

이유: Linux/Unix 시스템은 다중 프로세스 작업 방법을 사용하는 반면 Windows 시스템은 다중 스레드 작업 방법을 사용합니다.

즉, Linux 시스템에서 작업 스케줄링의 기본 단위는 프로세스이고, Windows 시스템에서 작업 스케줄링의 기본 단위는 스레드입니다.

일반적으로 우리는 ISAPI 모드에서 실행되도록 PHP를 구성합니다. ISAPI는 다중 모드입니다. 스레드 모드이므로 훨씬 더 빠릅니다.

그러나 문제가 있습니다. 일반적으로 사용되는 많은 PHP 확장은 Linux/Unix의 다중 프로세스 사고를 기반으로 개발되었습니다. 이러한 확장을 ISAPI 모드에서 실행하면 오류가 발생하여 IIS가 다운됩니다.

그래서 CGI 모드는 IIS에서 PHP를 실행하는 가장 안전한 방법이지만 CGI 모드는 각 HTTP 요청에 대해 전체 PHP 환경을 다시 로드하고 언로드해야 하며 그 소비가 엄청납니다.

IIS에서 PHP의 효율성과 보안을 고려하기 위해 Microsoft는 FastCGI 솔루션을 제공했습니다.

FastCGI를 사용하면 새 요청이 있을 때마다 프로세스를 다시 여는 대신 PHP 프로세스를 재사용할 수 있습니다. 동시에 FastCGI에서는 여러 프로세스를 동시에 실행할 수도 있습니다. 이는 CGI 프로세스 모드의 과도한 사용 문제를 해결할 뿐만 아니라 CGI 프로세스 모드에 스레드 안전 문제가 없다는 사실도 활용합니다.

따라서:

ISAPI를 사용하여 PHP를 실행하는 경우 스레드 안전(스레드 안전) 버전을 사용해야 합니다.

FastCGI 모드를 사용하여 PHP를 실행하는 경우 스레드 안전 검사를 사용할 필요가 없습니다. None Thread를 사용하세요. 안전(NTS, 비-스레드 안전) 버전은 효율성을 더 향상시킬 수 있습니다.

어떤 것을 사용할지 어떻게 선택해야 하나요(PHP 스레드 안전, PHP 비스레드 안전)?

windos 서버:

1. PHP+IIS인 경우: PHP 스레드 안전 없음(NTS)을 선택하세요.

2. PHP 스레드인 경우: 안전(스레드 안전(TS))

리눅스 서버:

Linux 서버에서는 PHP 스레드 안전 버전과 스레드 안전하지 않은 버전 사이에 구분이 없습니다.

권장 학습: "PHP 비디오 튜토리얼"

위 내용은 PHP에서 nts는 무엇을 의미합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.