线程函数和普通函数之间的区别是什么.它在内存分配或执行方面不同吗



假设我有一个函数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__())

在内存方面,

在第一个方法中,您将函数作为一个单独的线程运行,而在第二个方法中您必须创建一个类,但要获得更多的功能。这意味着它需要额外的内存,因为你可以获得更多的功能。我不能百分之百肯定,但这就是我所理解的。

最新更新