Python 3.x 线程功能和普通功能的区别是什么。它在内存分配或执行方面是否有所不同?

Python 3.x 线程功能和普通功能的区别是什么。它在内存分配或执行方面是否有所不同?,python-3.x,sockets,networking,operating-system,Python 3.x,Sockets,Networking,Operating System,假设我有一个函数句柄客户端 def Handle_Client(): 打印('Hello StackOverFlow user') 使用线程调用函数handel客户端的一种方法 客户端线程=线程(目标=句柄客户端,args=()) Client_Thread.start() 第二条路 Client\u Thread=Handle\u Client() 在内存、执行或相同方面有什么区别?在执行方面 你提到的第一种方式 Client_Thread=Thread(target=Handle_Clien

假设我有一个函数句柄客户端 def Handle_Client(): 打印('Hello StackOverFlow user')

使用线程调用函数handel客户端的一种方法 客户端线程=线程(目标=句柄客户端,args=())

Client_Thread.start()

第二条路 Client\u Thread=Handle\u 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\u Client
继承了Python
threading.Thread类。

初始化(self[,args])
:重写构造函数

run()
:这是可以放置逻辑部件的部分

start()
:start()方法启动Python线程

Handle\u Client类重写构造函数,因此必须调用基类构造函数
(Thread.\uu init\uu())

在记忆方面,

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