차이
문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판이전 판다음 판 | 이전 판 | ||
tech:php_thread_safe [2018/12/18 00:22] – V_L | tech:php_thread_safe [2018/12/18 00:45] (현재) – [Multi thread VS Multi process] V_L | ||
---|---|---|---|
줄 2: | 줄 2: | ||
====== | ====== | ||
- | **Thread Safe 와 Non Thread Safe** | + | 웹서버는 |
- | 이유는 윈도우가 **멀티쓰레드** 방식인데 PHP 는 멀티프로세스 방식으로 개발 되었기 때문이다. | + | =====Multi thread VS Multi process===== |
- | 참고로 [[tech: | + | |
+ | 멀티쓰레드 방식은 여러 요구를 하나의 프로세스가 시간을 쪼개어 처리하는 방법이고, | ||
- | 우선 | + | 기본적으로 |
- | PHP를 IIS와 연동하기 위해 CGI 또는 ISAPI 방식으로 연동을 한다. | + | [[tech: |
- | 그런데 PHP와 관련된 모듈들이 대부분 | + | |
- | 멀티쓰레드 방식으로 개발된 ISAPI 로 연동하였을 경우 서버가 다운되는 현상이 나타났다. | + | |
- | 그래서 안정적인 방법으로 CGI 방식을 사용하긴 하지만 이 것 역시 퍼포먼스 측면에서 너무 느리다는게 문제가 | + | 원래 PHP와 관련된 모듈들이 대부분 멀티프로세스 |
- | 이 퍼포먼스 | + | 멀티쓰레드 방식으로 |
- | 정리를 하자면 | + | |
+ | 하지만 이 방법은 느리다는 문제가 있었다. | ||
+ | 그래서 Fast-CGI 방식으로 연결하여 퍼포먼스를 해결한 것이 Non Thread Safe 버전이다. | ||
+ | 정리를 하자면 | ||
+ | =====Thread Safe===== | ||
+ | - 단일 스레드 | ||
+ | - SAPI와 PHP 호환을 위해 | ||
=====Non Thread Safe===== | =====Non Thread Safe===== | ||
- 다중 스레드 | - 다중 스레드 | ||
- FAST CGI 호환을 위해 | - FAST CGI 호환을 위해 | ||
- | =====Thread Safe===== | + | |
- | - 단일 스레드 | + | |
- | - SAPI와 PHP 호환을 위해 | + | |
=====결론===== | =====결론===== |