在执行方面,
你提到的第一种方式
Client_Thread=Thread(target=Handle_Client,args=(1,))
Client_Thread.start()
当你创建一个线程时,你传递给它一个函数和一个包含该函数参数的列表。在这种情况下,您是在告诉线程运行 Handle_Client() 并将其作为参数传递 1。
您提到的第二种方法是通过创建一个类来完成。比如
class Handle_Client(threading.Thread):
def __init__(self, i):
threading.Thread.__init__(self)
self.h = i
def run(self):
print(“ Value send“, self.h)
Client_Thread = Handle_Client(1)
Client_Thread.start()
这里,新类Handle_Client继承了Python threading.Thread class.
__init__(self [,args]): 重写构造函数。
run():这是您可以放置逻辑部分的部分。
start(): start() 方法启动一个 Python 线程。
Handle_Client 类重写了构造函数,因此必须调用基类构造函数(Thread.__init__())。
在内存方面,
在第一种方法中,您将函数作为单独的线程运行,而在第二种方法中,您必须创建一个类,但要获得更多功能。
这意味着它将需要额外的内存,因为您可以获得更多功能。
我不是100%肯定,但这就是我所理解的。