python - 为什么线程会自动运行?
问题描述
from threading import Thread
class myclass:
def __init__(self):
print("Hey there, i am constructor")
def rn(self):
print("okk")
myobj=myclass()
mythread=Thread(target=myobj.rn())
在上面的代码中,我只创建了一个线程,但我没有使用 start 方法,那么为什么它正在运行?
解决方案
从线程库上的文档:
类 threading.Thread
target是 run() 方法调用的可调用对象。
你正在传递myobj.rn()
,它什么都不返回。由于您包含()
,因此您正在调用 rn 并将结果作为target
. 删除()
以传递对可调用对象的引用:
from threading import Thread
class myclass:
def __init__(self):
print("Hey there, i am constructor")
def rn(self):
print("okk")
myobj=myclass()
mythread=Thread(target=myobj.rn)
推荐阅读
- woocommerce - WooCommerce Select2 通过字符串开头匹配美国/加拿大等州,而不仅仅是任何匹配
- powerbi - PowerBI:将对象列表连接为列
- bash - 在第二次出现另一个字符串后保留该字符串
- android - 我应该使用哪个 Android Camera API
- android - Step counter in android studio keeps restarting, from like 15 steps to 1-2
- c# - WPF Get content of TextBlock inside of ListView when ContextMenu clicked
- javascript - How I can set property of object properties?(js)
- csv - Is there a way to speed up LOAD CSV of 120M relationships into 10M nodes avoiding cartesian product in Neo4j?
- java - for some reason the shared preference is not working
- excel - Data Entry form in VBA for research o