class MyThread(threading.Thread):
def __init__(self, func, args=()):
super(MyThread, self).__init__()
self.func = func
self.args = args
def run(self):
self.result = self.func(*self.args)
def get_result(self):
try:
return self.result
except Exception:
return None
A=MyThread(函数或类,(函数或类需要的参数))
进程与线程:
进程 | 线程 |
资源分配最小单位,一个程序至少有一个进程。 | 程序执行最小单位,一个进程至少有一个线程。 |
都有自己独立地址空间,内存,数据栈等,占用资源多,资源独立,通讯不便,只能使用进程间通讯(IPC) | 共享进程中的数据,相同的地址空间、创建快捷、开销小。同一进程下的线程共享全局变量、静态变量等数据。通讯方便,但存在数据同步和互斥问题,如何处理好同步和互斥是编写多线程程序的难点 |
一个进程可存在多个线程 | 单核CPU中每个进程同时刻只能运行一个线程,多核CPU中存在线程并发 |
| 当线程需要运行但没有运行空间,对线程优先级判断,高优先级先运行 |