문제

신뢰할 수 있는 coder 친구가 나에게 말했다는 파이썬 현재의 멀티-스레딩 구현에는 심각하게 버그-에 충분히 사용하지 않습니다.무엇을 할 수 있다고 말했에 대한 이 소문은?

도움이 되었습니까?

해결책

Python 스레드를 위해 좋 concurrent I/O 프로그램.스레드 스왑의 CPU 한 빨리 그들은 블록 입력을 기다리에서 파일,네트워크,etc.이것은 다른 Python 스레드가 CPU 를 사용하는 동안 다른 사람을 기다립니다.이것은 당신이 쓰지 멀티-스레드 웹 서버 또는 웹 크롤러에 대한 예입니다.

그러나,Python 스레드에서 직렬화 GIL 을 입력 할 때 통역 핵심입니다.이 두 개의 스레드 숫자를 하나만을 실행할 수 있습니다.그것은 또한 수 없다는 것을 의미합 활용하는 멀티 코어 또는 멀티 프로세서 아키텍처를 활용할 수 있다.

가 있 솔루션 같은 여러 번 실행 Python 통역을 동시에 사용하는 C 기반 스레딩 라이브러리입니다.이것은 약한 마음과 이득하는 것이 적당하지 않을 수 있습니다 있습니다.자에 대한 희망의 모든 Python 솔루션니다.

다른 팁

표준을 구현하는 파이썬(일반적으로 알려져 있으로 CPython 글 C)사용하는 스레드 OS,만이 있기 때문입니다 글로벌 통역 잠금, 만 한 번에 하나의 스레드를 실행할 수 있는 파이썬 코드입니다.그러나 이내에 그러한 제한,스레딩 라이브러리는 강력하고 널리 사용됩니다.

당신이 원하는 경우 사용할 수 있도록 여러 CPU 코어,거기에 몇 가지 옵션이 있습니다.를 사용하여 여러 파이썬 동시에 통역으로 언급하여 다른 사람입니다.또 다른 옵션은 사용하는 다른 구현 Python 를 사용하지 않는 만나볼 수 있습니다.두 가지 옵션 Jython서식 파일은 새.

Jython 은 written in Java,그리고 지금 상당히 성숙하지만,일부 호환성 남아 있습니다.예를 들어,웹 프레임워크 장고 실행되지 않는 완벽하게직, 하지만 가까워지고있다.Jython 가 한 스레드를 안전, 알 에서 더 나은 벤치마킹건방진 메시지를 원하는 사람들을 위해 GIL.

서식 파일은 새 사용합니다.NET 프레임워크 및입니다 C#으로 작성되어 있습니다.호환성는 단계에 도달하는 곳 장고 실행할 수 있습에 서식 파일은 새 (최소한으로 데모)가 을 사용하여 가이드를 스레드에서 서식 파일은 새.

GIL(글로벌 통역 Lock)문제가 될 수도 있지만,API 것을 쉽게 즐기실 수 있습니다.보수 processing 모듈를 구현하는 스레딩에 대한 API 를 별도의 프로세스입니다.내가 사용하는 지금(이기는 하지만,OS X 에서 아직 몇 가지 테스트 Windows)고 있습니다.큐 클래스는 정말 내 베이컨 관리 측면에서는 복잡성!

편집:그것은 seemes 처리 모듈은 포함되는 표준 라이브러리에 버전 2.6(import multiprocessing).기쁨!

내가 알기로는 진짜 버그,하지만 성능을 때 스레딩에서 cPython 은 정말 나쁜(에 비해 대부분의 다른 스레딩을 구현하지만,일반적으로 충분히 좋은 경우 모두 대부분의 스레드가 블럭)으로 인해 GIL (글로벌 통역 잠금),그래서 정말 그것은 구현별이 아닌 언어별로 되어 있습니다.Jython,예를 들어,이 고생하지 않 사용하기 때문에 자바 쓰레드 모델이다.

에 게시하지 않는 이유가 정말 실현 가능한 제거하는 길에서 cPython 구현 및 일부에 대한 실질적인 정교하고 해결 방법이 있습니다.

빠른 google "Python 길" 자세한 내용은.

하려면 코드에서는 파이썬고한 스레딩 지원할 수 있습을 확인하는 서식 파일은 새나 Jython.이후 파이썬 코드에서는 서식 파일은 새 및 Jython 에서 실행.NET CLR 및 자바 VM 을 각각들을 즐길 수있는 스레딩 지원으로 건설된 그 라이브러리입니다.그 외에도,서식 파일은 새 없 GIL,지 않는 문제를 해결 CPython 에서 스레드의 전체 활용 멀티 코어 아키텍처를 활용할 수 있다.

나는 그것에 사용되는 여러 가지 응용 프로그램 및 적이 없으며 듣고의 스레딩되고 다른 것보다 100%신뢰할 수 있는만큼 당신이 알고있는 제한.할 수 없습니다 산란 1000 스레드에서 동일한 시간과 기대 프로그램을 실행에 제대로 윈도우,그러나 쉽게 작성할 수 있습니 작업자는 수영장 단지 그것을 먹 1000 운영 및 유지 모든 것이 좋다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top