2012-02-16 3 views
9

파이썬 프레임 워크를 평가하여 REST API를 작성합니다. 나는 플라스크를 포함한 많은 프레임 워크를 거쳤으며 플라스크는 REST 웹 서비스를 구축하는 데 필요한 모든 기능을 사용하여 매우 흥미롭고 사용하기 쉬웠다.Flask 프레임 워크에서 스레드 로컬은 무엇을 의미합니까?

필자가 얻지 못한 한 가지 사실은 "스레드 로컬"을 사용하고 확장성에 문제가 있음을 언급 한 플라스크 워드 프로세서에 있습니다.

이 플라스크는 로컬 객체 스레드 사용 요청, 세션 및 (g)에 자신의 물건을 넣을 수 있습니다 추가 객체 (사실 컨텍스트 로컬 객체를, 그들은 greenlet 상황뿐만 아니라를 지원 ). 왜 그런가요? 나쁜 생각인가요? 그렇습니다 보통 현지인 스레드 을 사용하는 것은별로 좋은 생각이 아닙니다. 그들은 스레드 개념을 기반으로하지 않는 서버에서 문제를 일으키고 큰 응용 프로그램을 유지 관리하기가 어렵게 만듭니다. 그러나 Flask는 대형 응용 프로그램이나 비동기 서버 용으로 설계되지 않았습니다. Flask는 전통적인 웹 애플리케이션 인 을 빠르고 쉽게 작성하려고합니다.

나를 이해할 수있는 사람이 있습니까? 확장 성 문제가 언급 된 방식과 다른 프레임 워크가이 문제를 어떻게 처리합니까?

답변

4

확장 성 문제가 아니기 때문에 복잡한 코드 기반을 유지 관리하기가 더 어려워 질 수 있습니다. 이것은 스레드 로컬이 전역 데이터 저장소로 사용되므로 함수 인수를 통해 상태를 전달하지 않으므로 진행 상황을 추적하기가 더 어려워집니다.

속도면에서 볼 때 속도가 느린 스레드 로컬은 느리지 만 단일 스레드에서 많은 작업이 짧은 시간 동안 실행되는 비동기 프레임 워크를 사용하기가 어렵거나 불가능합니다.

+0

그래서 스레드 로컬과 두 개의 분리 된 문제가 있음을 의미합니까? (1) 프로그래머는 변수 상태를 고려해야하므로 프로그래밍하기가 매우 어렵습니다. (2) 일반적으로 사용되는 비동기 프로그래밍 프레임 워크는 스레드 로컬 환경에서 전혀 작동하지 않습니까? – max

관련 문제