Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 15, 2013 14:49:35

AngrySpoon
Зарегистрирован: 2013-10-15
Сообщения: 11
Репутация: +  0  -
Профиль   Отправить e-mail  

suspend/resume потока

Добрый день!
Ситуация следующая:

import multiprocessing
def testthread(index):
	tmpfile= open('c:\\test\\___testthread'+str(index)+'.tmp',"w",encoding='utf-8')
	i=0
	for i in range(999999):	
		tmpfile.write(str(index)+str(datetime.datetime.now().microsecond)+'\n')
	tmpfile.close()
if __name__ == '__main__':
	a=[]
	for i in range(20):
		a+=[multiprocessing.Process(target=testthread, args=(i,))] 
		a[i].start()

То есть, имеется функция, которая будет запускаться в 20 разных потоках. Функция исполняется долго.
Работать эти потоки должны параллельно. Собственно, вопрос: как можно приостановить работу потока (например, по ^C), а потом по какому-нить условию продолжить выполненение потока?

зы: это не совсем тот код, который будет использоваться, но смысл тот же. Не надо критиковать за бесполезность)))

Офлайн

#2 Окт. 15, 2013 16:06:29

AngrySpoon
Зарегистрирован: 2013-10-15
Сообщения: 11
Репутация: +  0  -
Профиль   Отправить e-mail  

suspend/resume потока

Всем спасибо за оперативные ответы, решение следующее:
http://stackoverflow.com/questions/2804287/pausing-a-process
psutil умеет и тормозить, и возобновлять процессы.
на всякий случай - в linux я просто посылал сигнал SIGSTOP и SIGCONT для достижения того же результата

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version