我将需要在python中对以下代码进行多线程作业(将其转换为伪代码)。我只是想在开始之前看看我的解决方案是否缺少任何东西。
L = [2, 3, 4, ...]
sums = [0, 0, 0, ...]
for item in L:
sums[hash(item)] += func(item)
我的解决方案是在for循环中拆分语句:将'item'变量保存在临时变量中,每当我这样做时锁定L,然后将信息hash(temp_item)和func(temp_item)计算为更多临时变量. 然后锁定L并更新它。
这是最好的解决方案吗?仅在我接受或更新时锁定变量。
这更多地是关于正确学习并行性,而不是 python 的限制。