繁体   English   中英

与python并行执行代码

[英]Executing code in parallel with python

我正在尝试在python中使用多线程。 我写了以下代码开始。 它应该并行计算列表中包含的数字平方,并将结果返回到名为“结果”的列表中。 我写这是为了并行化包含for循环的脚本。

但是,我收到一个TypeError告诉我'int object is not callable'。 我猜这是因为这行代码: thr.append(threading.Thread(target=square(k))) :在我阅读的示例中,target是一个函数。 但是在我的示例中,我将需要使用不同的参数调用同一函数。 我怎样才能做到这一点?

>>> def square(c):
...     return c^2
...     result.append(c^2)
... 



>>> def sqr():
...     thr = []
...     for k in l:
...         thr.append(threading.Thread(target=square(k)))
...     for t in thr:
...         t.start()
...     for i in thr:
...         t.join()

尝试这个:

thr.append(threading.Thread(target=square, args=(k,)))

而不是thr.append(threading.Thread(target=square(k)))

之所以收到该错误,是因为最终在代码中调用了该函数。 调用该函数时, square(k)返回一个不可调用的int

请参阅文档

另外,正如unutbu在对该问题的评论中指出的那样,您正在执行XOR而不是计算平方。 平方的计算方式是: x**2而不是x^2

同样,您要在将结果添加到列表之前返回结果,因此,如果要将数字的平方添加到列表result ,则可能要颠倒函数定义中两行的顺序。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM