Python 线程参数传递

Python threading arguments passing

我想了解我们可以将参数传递给线程的方式之间的区别,以及这是否对线程安全有任何影响。

我正在使用 python 3.7.3,代码的两个实例对我来说都运行良好。

示例 1:
thread = threading.Thread(target=MultiHandler().handle, args=(argument))

示例 2:
thread = threading.Thread(target=MultiHandler().handle(argument))

target 应该是要调用的可调用对象,而不是函数调用的结果,
除非你的第二个示例函数 returns 另一个可调用对象(target=MultiHandler().handle(argument) returns ---> callable).

Python 允许线程中的 args 和 kwargs 作为参数。这可用于在函数内部做出决策。 它是线程安全不适用于参数的可调用函数。