2013-10-08 2 views
3

twisted docs on multithreading을 읽었을 때, 나는 비틀림이 모든 스레드를 비동기 적으로 처리하여 단일 스레드에서 최상으로 작동한다는 인상을 받았습니다. 하지만 멀티 스레딩, 비동기 성 및 성능 (속도) 사이의 관계를 이해하지 못한다는 강한 느낌이 들었습니다.파이썬 트위스트 멀티 스레드 서버

많은 CPU 코어가있는 컴퓨터가 있다고 상상해보십시오. 우리는 높은 트래픽을 관리 할 수있는 트위스티드 서버를 배치하려고합니다. 우리는 모든 코어를 사용하여 서버가 최대한 빨리 응답하도록 할 수 있습니다. 우리는 어떻게해야합니까? 단일 또는 다중 스레드 패턴을 사용해야합니까? 코어 수가 비틀림 효율성 (C 레벨 또는 파이썬 레벨)에 영향을 줍니까?

필자는 캐시와 데이터베이스 관련 주제 (모든 응용 프로그램의 속도를 높일 수 있음)는 고려하지 않았습니다. 스레드, 프로세스 등 하드웨어 관련 주제 만 고려 중입니다.

답변

2

Twisted's built-in process-spawning API을 사용하여 여러 프로세스가 생성됩니다.

서버가 UNIX에서 실행될 경우 reactor socket-transferring methods을 사용하여 서버의 프로세스간에 연결 및 수신 대기 포트를 이동할 수 있습니다. 단, 이러한 인터페이스는 언젠가는 Windows로 이식 될 수도 있습니다.

Twisted 또는 그와 유사한 시스템을 사용하는지 여부에 관계없이 Python에서 여러 스레드를 생성하면 global interpreter lock 때문에 여러 코어를 사용할 수 없습니다.

+0

당신의 대답은 저에게 제가 읽어야 할 몇 가지 자료를주었습니다. 그러나 이것은 귀중한 것 같습니다. 고마워요! – ducin