2013-06-03 4 views
2

파이썬에서 스레드의 비례 실행 시간을 제어 할 수 있습니까? 예를 들어, 내 프로그램에는 세 가지 기능 F1, F2 및 F3이 있습니다. 파이썬에서 start_new_thread를 사용하여 각 함수를 호출합니다. F2 스레드는 70 %의 시간을, F1과 F3은 30 %의 나머지를 공유해야합니다. 이러한 타이밍을 명시 적으로 제어하는 ​​방법이 있습니까?Python에서 스레드 실행 시간 제어

+0

여기에 동기가 무엇입니까? 왜 당신은 이것을하고 싶고 얼마나 정확해야 하는가? –

+1

이것은 대개 os가 처리하는 매우 낮은 수준의 항목입니다. 원하는대로 정확하게 제어 할 수있는 방법이 있을지 모르지만 특정 우선 순위로 스레드를 시작할 수있는 방법이있을 수 있습니다. – pypat

+0

사실 다른 사람이 작성한 코드를 병렬 처리하려고합니다. 나는 원래 코드에서 최소한의 변경을하는 동안이 함수 (F2)를 사용하고 싶다. 문제는 단지 F2를 호출 할 때 쓰레드를 생성하지 않으면 너무 오래 걸린다는 것입니다. 이 함수에 대한 스레드를 생성하면서 F2 호출 중에 프로그램을 정지하지 않고 최대한 빨리 F2 실행을 완료 할 수 있도록 최대 예약 시간을 할당하려고합니다. – user2448048

답변

0

우선 순위 대기열과 시간 퀀텀을 사용하여 스케줄러를 만들 수 있습니다. 구체적인 내용은 파이썬에서 잘 모르겠지만 개념은 같습니다 : 쓰레드를 받아들이는 Scheduler 클래스를 만들고 주어진 우선 순위를 가진 우선 순위 큐에 쓰레드를 추가 한 다음 지정된 퀀텀이 경과 한 후에 쓰레드를 휴면합니다. 현재 스레드 우선 순위에 따라 시간 퀀텀을 조정할 수 있습니다.

이것은 운영 체제가 프로세스 스레드를 예약하는 방법과 유사합니다.

+0

아한. 감사!. 이것은 앞으로 좋은 방향입니다. 스레드 우선 순위 지정. 파이썬에서 이것이 얼마나 유연 할 수 있는지 살펴 보겠습니다. – user2448048

+0

문제가되지 않습니다. 도움이되기를 바랍니다. –