나는 X 초 이상 동안 활성화되어 있다면 스레드를 죽일 수있는 좋은 타임 아웃 스크립트를 찾고 있었지만 모든 예제는 항상 멈추지 않는 결함이있다. 실. thread.join (x)를 사용하면 스레드의 목적을 무력화시킵니다.파이썬 타임 아웃
내가 찾은 유일한 괜찮은 예 Timeout on a function call이고 하나 .. 그 결함없이 아니라고
사람이 할 수있는 더 좋은 방법을 알고?
나는 X 초 이상 동안 활성화되어 있다면 스레드를 죽일 수있는 좋은 타임 아웃 스크립트를 찾고 있었지만 모든 예제는 항상 멈추지 않는 결함이있다. 실. thread.join (x)를 사용하면 스레드의 목적을 무력화시킵니다.파이썬 타임 아웃
내가 찾은 유일한 괜찮은 예 Timeout on a function call이고 하나 .. 그 결함없이 아니라고
사람이 할 수있는 더 좋은 방법을 알고?
나는 이것이 당신이 원하는 것이 아닐지 모르지만 신호 접근법을 고려 했습니까? Timeout on a function call http://docs.python.org/library/signal.html#example
당신은 스레드 실행의 시작 부분에 경보 신호를 설정 한 다음 신호 처리기에서 스레드를 중지 할 수 있습니다.
>이 모듈은 스레드와 잘 작동하지 않습니다 (하지만 누가 그렇습니까?). – Dave
내 대답보기 python: how to send packets in multi thread and then the thread kill itself - 시간 초과 후 다른 스레드를 죽이는 InterruptableThread 클래스 및 예제가있는 조각이 있습니다. 정확히 원하는 것입니다.
또한 활성 상태의 Python recipe도 있습니다.
파이썬 사람들은 일반적으로 공유 메모리에 쓰고있는 것을 죽이는 것은 좋지 않기 때문에 이것을 열심히했습니다. 스레드 대신 프로세스를 사용할 수 있습니까? – Dave
글쎄,이 경우에는 mod_wsgi 스크립트를 사용하기 때문에 종료 처리가 더 필요하다. 스크립트가 제한 시간을 지나면 전체 스레드를 종료하고 종료하므로 잠재적으로 공유 메모리를 손상시키는 것은 큰 문제는 아닙니다. – Ian
데몬 모드 또는 임베디드 모드로 실행 중이십니까? – Dave