我可以通过"Test"
with args
to test()
如下所示:
import threading
def test(arg):
print(arg) # "Test"
# Here
thread = threading.Thread(target=test, args=("Test",))
thread.start()
thread.join()
而且,我还可以通过"Test"
没有args
to test()
如下所示:
import threading
def test(arg):
print(arg) # "Test"
# Here
thread = threading.Thread(target=test("Test"))
thread.start()
thread.join()
那么,使用有什么区别args
传递参数并将它们直接传递给Python中的线程?
这确实not call test
在一个新线程中:
thread = threading.Thread(target=test("Test"))
thread.start()
Python 解释这些代码行的方式如下:
- 主线程调用
test("Test")
.
-
test("Test")
回报None
.
- 主线程调用
Thread(target=None)
.*
- 主线程启动新线程。
- 新线程根本不执行任何操作,因为它的目标是
None
.
Edit:
*我想知道为什么Thread(targe=None)
不会引发异常,但 @Ahmed AEK 在下面的评论中对此进行了解释。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)