2013-06-03 2 views
2

Возможно ли контролировать пропорциональное время выполнения потока в python. Например, у меня есть три функции F1, F2 и F3 в моей программе. Я вызываю каждую функцию с использованием start_new_thread в python. Я хочу, чтобы поток F2 выполнял 70 процентов времени, в то время как F1 и F3 должны делиться остальной частью 30 процентов. Есть ли способ явно контролировать эти тайминги.Управление временем выполнения строки в Python

+0

Какова мотивация здесь? Почему вы хотите это сделать, и насколько это необходимо? –

+1

это очень низкоуровневый материал, который обычно обрабатывается os. Я сомневаюсь, что есть способ контролировать его так точно, как вы хотите, но может быть способ запустить поток с определенным приоритетом. – pypat

+0

На самом деле я пытаюсь распараллелить код, написанный кем-то другим. Я хочу использовать эту функцию (F2), делая минимальные изменения в исходном коде. Проблема в том, что если я просто передаю вызов F2 без создания потока для него, это займет слишком много времени. Я хочу создать поток для этой функции, назначая максимальное время планирования, чтобы завершить выполнение F2 как можно скорее, не повесив мою программу во время вызова F2. – user2448048

ответ

0

Вы можете создать планировщик, используя приоритетную очередь и квант времени. Не уверен в специфике этого в Python, но концепция одинаков: создайте класс Scheduler, который принимает поток, добавьте поток в очередь приоритетов с заданным приоритетом, затем спустите поток после истечения заданного времени. Вы можете адаптировать квант времени в зависимости от текущего приоритета потоков.

Это похоже на то, как операционная система планирует потоки процессов.

+0

Ахан. Благодаря!. Это хорошее направление вперед. Приоритизация потоков. Позвольте мне изучить, насколько это возможно в Python. – user2448048

+0

Не проблема, надеюсь, это поможет! –

Смежные вопросы