Я новичок в многопроцессорной среде,
Я кое-что знаю о многопоточности, но мне нужно увеличить скорость вычислений, надеюсь, с помощью многопроцессорной обработки:
Пример Описание: отправляет строку в поток, изменяет строку + тест производительности,
отправить результат обратно на печать.
from threading import Thread
class Alter(Thread):
def __init__(self, word):
Thread.__init__(self)
self.word = word
self.word2 = ''
def run(self):
# Alter string + test processing speed
for i in range(80000):
self.word2 = self.word2 + self.word
# Send a string to be altered
thread1 = Alter('foo')
thread2 = Alter('bar')
thread1.start()
thread2.start()
#wait for both to finish
while thread1.is_alive() == True: pass
while thread2.is_alive() == True: pass
print(thread1.word2)
print(thread2.word2)
В настоящее время это занимает около 6 секунд, и мне нужно, чтобы он шел быстрее.
Я изучал многопроцессорность и не могу найти что-то эквивалентное приведенному выше коду. Я думаю, что я ищу, это объединение , но примеры, которые я нашел, было трудно понять. Я хотел бы воспользоваться всеми ядрами (8 ядер) multiprocessing.cpu_count()
, но у меня действительно есть клочки полезной информации о многопроцессорной обработке и ее недостаточно для дублирования вышеуказанного кода. Если кто-то может указать мне правильное направление или еще лучше, приведите пример, который был бы очень признателен. Python 3, пожалуйста