假设我有一个函数Handle clientdef Handle_Client((:打印("你好StackOverFlow用户"(
使用线程调用函数handel客户端的一种方法Client_Thread=线程(target=Handle_Client,args=(((
Client_Thread.start((
第二种方式Client_Thread=Handle_Client((
内存、执行方面的差异是什么?还是相同?
在执行方面,
你提到的第一种方式
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
继承了Pythonthreading.Thread class.
__init__(self [,args])
:重写构造函数。
run()
:这是您可以放置逻辑部分的部分。
start()
:start((方法启动一个Python线程。
Handle_Client类重写构造函数,因此必须调用基类构造函数(Thread.__init__())
。
在内存方面,
在第一个方法中,您将函数作为一个单独的线程运行,而在第二个方法中您必须创建一个类,但要获得更多的功能。这意味着它需要额外的内存,因为你可以获得更多的功能。我不能百分之百肯定,但这就是我所理解的。