我正在使用 Python 线程同时做一些工作。我让主线程执行task_A
,并创建一个线程同时执行task_B
。以下是我正在处理的代码的简化版本:
import threading
import numpy as np
def task_B(inc):
for elem in array:
value = elem + inc
if __name__ == '__main__':
array = np.random.rand(10)
t1 = threading.Thread(target=task_B, args=(1))
t1.start()
# task_A
array_copy = list()
for elem in array:
array_copy.append(elem)
t1.join()
我知道上面的代码没有做任何有意义的事情。请把它当作一个简化的例子。如您所见,变量array
在主线程和新创建的线程中都是只读的t1
。因此,不需要锁定array
主线程和t1
线程,因为它们都不会修改(或写入)变量。但是,当我对代码进行计时时,Python 线程似乎会自动锁定线程之间共享的变量,即使它们是只读的。有没有办法让每个线程同时运行而不锁定只读变量?我找到了这段代码,但无法弄清楚如何将其应用于我的情况。