가능한 중복 :
PHP에서 스레드 안전 또는 비 스레드 안전
무엇인가가 스레드로부터 안전 할 때 또는 그렇지 않을 때 무엇을 의미합니까?
예를 들어, PHP의 setlocale ()은 스레드로부터 안전하지 않습니다.
로켈 정보는 스레드별로가 아니라 프로세스별로 유지 관리됩니다. 만약 IIS 또는 Apache와 같은 다중 스레드 서버 API에서 PHP를 실행하고 있습니다. Windows에서 로켈 설정이 갑자기 변경 될 수 있습니다. 스크립트 자체가 호출되지는 않지만 스크립트가 실행 중입니다. setlocale (). 이것은 다른 스크립트가 다른 스크립트로 인해 발생합니다. 동일한 프로세스의 스레드를 동시에 변경하고 setlocale ()을 사용하여 프로세스 전체의 로케일.
http://php.net/manual/en/function.setlocale.php
이것은 실질적으로 무엇을 의미합니까? 스레드가 안전한지 여부가 좋은 것입니까?
어떤 조건에서 문제에 대해 스레드 안전 또는 비 스레드 안전 솔루션이 필요합니까?
스레드 안전성은 좋은 것입니다. 즉, 동시 스레드가 여러 개있을 수 있지만 경쟁 조건, 동시성 문제 등이없는 안전한 방식으로 서로 이야기하고 있다는 것을 의미합니다.
스레드 안전성은 컴퓨터 프로그래밍 개념으로 다중 스레드 프로그램의 컨텍스트 코드 조각은 다음과 같은 경우 스레드로부터 안전합니다. 스레드로부터 안전한 방식으로 공유 데이터 구조 만 조작합니다. 동시에 여러 스레드에서 안전하게 실행할 수 있습니다. 스레드로부터 안전한 데이터 구조를 만들기위한 다양한 전략이 있습니다.
출처.
setlocale
잠재적 인 부작용의 좋은 예입니다. (실제로는 최신 Windows 버전에서 스레드별로 작동합니다.) - mario