Найти - Пользователи
Полная версия: multiprocessing
Начало » Python для новичков » multiprocessing
1
Alex_Kutsan
узнал что для разбивки по ядрам нужно использовать процесы. Ну вот почти пример из оф. документации

>>> from multiprocessing import Process
>>> import time
>>> def g():
for x in range(-100,0):
print(x)
time.sleep(1)


>>>
>>> p = Process(target=g)
>>> p.start()
>>> p.join()
ровным счётом ничего не происходит.
Только говорит что процесс уже начат, если я пытаюсь начать его снова.

Кто-то подскажет, может в чём ошибка, или оно не должно работать в IDE. Или оно не работает п питоне 3.2?
Enchantner
Alex_Kutsan
Вроде как print у нас не thread-safe. Попробуйте модуль logging для вывода значений в консоль.
ZAN
Процесс скорее всего выполняется корректно, но пишет в свой stdout, не связанный с вводом/выводом IDLE. В консольной же версии питона (и тем более, если запустить этот код из скрипта) код работает корректно.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB