컴퓨터 지식 네트워크 - 컴퓨터 구성 - Python ThreadPoolExecutor 비정상 중단 솔루션

Python ThreadPoolExecutor 비정상 중단 솔루션

일반적으로 Ctrl C를 사용하여 프로그램이 KeyboardInterrupt 예외를 트리거하고 프로그램을 종료하도록 합니다. 스레드 풀 솔루션에서는 Ctrl-C가 유효하지 않으며, KeyboardInterrupt는 스레드 풀의 스레드 작업 실행이 완료된 후에만 트리거됩니다.

컨텍스트 관리 프로토콜은 threadPool.shutdown(wait=True)을 암시적으로 생략하는 것과 동일합니다. 동시에 프로그램이 정상적인 실행을 완료하거나 비정상적인 중단이 발생하면 __exit__() 메서드가 호출됩니다. .다음 중단의 기준입니다.

Django와 같은 WEB 애플리케이션 프레임워크에 적합합니다. 멀티스레딩이 제공되므로 전역 변수를 수정하기 쉽지만 스레드 안전성에 주의하세요.

프로그램이 실행 중일 때 sign = 1 또는exiting.set()만 하면 작업자 함수는 주요 작업 부분을 건너뛰고 나머지 스레드 작업은 빠르게 완료되어 목적을 달성합니다. 변장한 멀티스레드 작업을 중단합니다.

스레드 풀에 제출된 각 스레드 작업은 해당 작업에 대한 후속 작업을 용이하게 하기 위해 threadPool에 추가됩니다. for 루프의 모든 작업이 제출되면 스레드는 다시 백그라운드에서 실행되고 threadPool의 마지막 스레드가 .done()이 될 때까지 잠시 동안 프로세스가 차단됩니다. 프로세스가 차단되고 잠시 동안 Ctrl C의 KeyboardInterrupt 예외를 수신하면 일시 중단 목적을 달성하기 위해 threadPool의 모든 작업이 뒤에서 앞으로 취소됩니다.

上篇: 32비트 및 64비트 win8 Professional 버전용 설치 키는 어디서 다운로드할 수 있나요? 下篇: Oppo가 충전하는 동안 계속 신호음이 울립니다.
관련 내용