让我来详细讲解一下Python实现多线程的两种方式。
1. 使用threading模块实现多线程
Python提供了一个内置模块threading来实现多线程。使用threading模块实现多线程的基本步骤如下:
1.导入threading模块:
import threading
2.创建一个继承自threading.Thread类的子类,重写其run方法:
class MyThread(threading.Thread):
def __init__(self, num):
super().__init__()
self.num = num
def run(self):
print("子线程%d启动!" % self.num)
3.创建线程:
t1 = MyThread(1)
t2 = MyThread(2)
4.启动线程:
t1.start()
t2.start()
下面给出一个完整的示例:
import threading
class MyThread(threading.Thread):
def __init__(self, num):
super().__init__()
self.num = num
def run(self):
print("子线程%d启动!" % self.num)
t1 = MyThread(1)
t2 = MyThread(2)
t1.start()
t2.start()
print("主线程结束!")
上面的代码将会输出以下内容:
子线程1启动!
子线程2启动!
主线程结束!
2. 使用multiprocessing模块实现多进程
Python提供了一个内置模块multiprocessing来实现多进程。使用multiprocessing模块实现多进程的基本步骤如下:
1.导入multiprocessing模块:
import multiprocessing
2.创建一个继承自multiprocessing.Process类的子类,重写其run方法:
class MyProcess(multiprocessing.Process):
def __init__(self, num):
super().__init__()
self.num = num
def run(self):
print("子进程%d启动!" % self.num)
3.创建进程:
p1 = MyProcess(1)
p2 = MyProcess(2)
4.启动进程:
p1.start()
p2.start()
下面给出一个完整的示例:
import multiprocessing
class MyProcess(multiprocessing.Process):
def __init__(self, num):
super().__init__()
self.num = num
def run(self):
print("子进程%d启动!" % self.num)
p1 = MyProcess(1)
p2 = MyProcess(2)
p1.start()
p2.start()
print("主进程结束!")
上面的代码将会输出以下内容:
子进程1启动!
子进程2启动!
主进程结束!
总体而言,Python实现多线程的两种方式非常类似,都是要创建一个子类并重写它们的run方法。使用multiprocessing模块实现多进程时,要创建的是一个继承自multiprocessing.Process类的子类,启动进程的方法也是“start”,而使用threading模块实现多线程时,要创建的是一个继承自threading.Thread类的子类,启动线程的方法也是“start”。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python实现多线程的两种方式 - Python技术站