Я новичок в многопроцессорности и многопоточности в Python и пытаюсь решить эту проблему:
Учитывая матрицу тревожности, я должен суммировать все элементы матрицы с многопроцессорностью или многопоточностью (я быхотелось бы увидеть оба решения). Каждый поток должен суммироваться с переменной sumThreads
(я не знаю, если с многопроцессорностью это может быть достигнуто).Я должен использовать n процессов / потоков.
Это то, что я до сих пор пробовал с потоками
import threading
matrix = [[1, 2],[3, 4],[5, 6]]
def run(n):
for i in range(len(matrix[0])):
sumThreads += matrix[n][i]
sumThreads = 0
for i in range(len(matrix)):
t = threading.Thread(target=run, args=(i,))
t.start()
print(sumThreads)
Однако я получаю следующую ошибку
UnboundLocalError: local variable 'sumThreads' referenced before assignment
Если я помещу run
ниже начальных потоков, это говорит мне, что запуск не определен.
То, что я ожидаю, выглядит примерно так:
sumThreads = 0
matrix = [[1, 2],[3, 4],[5, 6]] #Prints 21
Здесьn = 3
и вывод должен быть 21
с потоком / процессом 1
добавлением 1+2
, потоком / процессом 2
добавлением 3+4
и потоком / процессом 3
добавлением 5+6