Есть ли многопроцессорность в питоне как минимум 0,3 с?
25 просмотра
1 ответ
14 Репутация автора
Я пытался научиться использовать многопроцессорный модуль в Python. Кажется, я обнаружил небольшой интересный факт в этом модуле: если использовать функцию pool () для выполнения какого-либо подпроцесса, то, независимо от того, какую работу выполняет каждый отдельный процесс, чтобы завершить весь процесс, это будет стоить как минимум Например, 0,3 с, если я напечатаю что-то 16 раз, это будет стоить очень мало времени, но если я использую 16 процессов, а каждый процесс печатает один раз, это будет стоить 0,3 с, я не знаю, является ли это моим В коде есть какая-то ошибка или что-то еще, может кто-нибудь объяснить это мне, код, который я использую ниже:
import time
from multiprocessing import Pool
import os
start = time.time()
def task():
print('something')
if __name__ == '__main__':
print('Parent process %s.' % os.getpid())
p = Pool(16)
for i in range(17):
p.apply_async(task)
print('Waiting for all subprocesses done...')
p.close()
p.join()
print('All subprocesses done.')
end = time.time()
print(end - start)
Автор: Zhou XF
Источник
Размещён: 11.08.2019 07:50
Ответы (1)
0 плюса
6552 Репутация автора
Эти 300 мс - это просто время, которое ваша операционная система берет на себя, чтобы создать новый процесс в вашей системе. Вы почти ничего не можете сделать с этой задержкой.
Автор: ruohola Размещён: 11.08.2019 08:29Вопросы из категории :
- python Обработка XML в Python
- python Как я могу использовать Python itertools.groupby ()?
- python Python: На какой ОС я работаю?
- python Как я могу создать непосредственно исполняемое кроссплатформенное приложение с графическим интерфейсом на Python?
- python Вызов функции модуля с использованием его имени (строки)
- python Звук Питона («Колокол»)
- python Regex и unicode
- python Создать зашифрованный ZIP-файл в Python
- python Создайте базовый итератор Python
- python Функция транспонирования / распаковки (обратная сторона zip)?
- multiprocessing многопроцессорность: совместное использование большого объекта только для чтения между процессами?
- multiprocessing InterlockedIncrement vs. ++
- multiprocessing Дочерние процессы, созданные с помощью многопроцессорного модуля Python, не будут печататься
- multiprocessing еще одна путаница с ошибкой многопроцессорности, объект 'module' не имеет атрибута 'f'
- multiprocessing Многопроцессорность против многопоточности Python
- multiprocessing Многопроцессорность: как использовать Pool.map для функции, определенной в классе?
- multiprocessing Многопроцессорная обработка Python непрерывно порождает процессы pythonw.exe без какой-либо реальной работы
- multiprocessing Sharing a complex object between Python processes?
- multiprocessing Могу ли я использовать многопроцессорную очередь в функции, вызываемой Pool.imap?
- multiprocessing Python многопроцессорно работает с несколькими входами