차이
문서의 선택한 두 판 사이의 차이를 보여줍니다.
| 양쪽 이전 판이전 판다음 판 | 이전 판 | ||
| tech:php_thread_safe [2018/12/17 15:22] – V_L | tech:php_thread_safe [2018/12/17 15: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 호환을 위해 | + | |
| =====결론===== | =====결론===== | ||