2011-11-30 3 views
6

가능한 중복 : 뭔가 또는 스레드 안전하지 않을 때
What is thread safe or non thread safe in PHPPHP 컨텍스트에서 스레드 안전은 무엇을 의미합니까?

는 것은 무엇을 의미 하는가?

예를 들어, PHP의 setlocale에()는 스레드 안전하지된다

로케일 정보가없는 스레드 프로세스별로 유지된다. IIS와 같은 다중 스레드 서버 API 또는 Windows에서 Apache 에서 PHP를 실행중인 경우 setlocale()을 호출하지 않았더라도 스크립트가 실행되는 동안 로켈 설정이 갑자기 변경 될 수 있습니다. 이것은 같은 프로세스의 다른 스레드에서 동시에 실행중인 다른 스크립트가 setlocale()을 사용하여 프로세스 로케일을 변경했기 때문에 발생합니다.

http://php.net/manual/en/function.setlocale.php

이 실질적으로 무엇을 의미합니까? 스레드가 안전한지 여부가 좋은 것입니까?

어떤 조건에서 문제에 대해 스레드로부터 안전하거나 스레드로부터 안전하지 않은 솔루션이 필요합니까? 안전

+0

특정 웹 서버 설정과 관련된 부분 만 읽었습니까? 그것은 당신이 선택하거나 사용할 수있는 것이 아닙니다. 'setlocale'은 잠재적 인 부작용의 좋은 예입니다. (실제로는 최신 Windows 버전에서 스레드별로 작동합니다.) – mario

답변

4

스레드가 동시에 여러 스레드가있을 수 있습니다 동안 그 의미, 좋은 일, 그들은 등, 경쟁 조건, 동시성 문제가되지 않습니다 안전한 방법으로 서로 이야기

스레드 안전성은 멀티 스레드 프로그램의 컨텍스트에 적용되는 컴퓨터 프로그래밍 개념입니다. 코드가 스레드 안전 방식으로 공유 데이터 구조 만 조작하는 경우 코드를 사용하면 여러 스레드가 동시에 안전하게 실행할 수 있습니다. 스레드로부터 안전한 데이터 구조를 만들기위한 다양한 전략이 있습니다.

Source.

관련 문제