_thread 模块是一个底层模块,功能较少,当主线程运行完毕后,如果不做任何处理,会立刻把子线程给结束掉,现实中几乎很少使用该模块,因此不作过多介绍。对于多线程开发推荐使用 threading 模块,这里我们简单了解下通过该模块实现多线程,详细介绍我们放在了下一节多线程的文章中。
threading 模块通过 Thread 类提供对多线程的支持,首先,我们要导入 threading 中的类 Thread,示例如下:
from threading import Thread
依赖导入了,接下来要就要创建线程了,直接创建 Thread 实例即可,示例如下:
# method 为线程要执行的具体方法
p1 = Thread(target=method)
若要实现两条线程,再创建一个 Thread 实例即可,示例如下:
p2 = Thread(target=method)
需要实现更多条的线程也是一个道理。线程创建好了,通过 start 方法启动即可,示例如下:
p1.start()
p2.start()
如果是多线程任务,我们可能需要等待所有线程执行完成再进行下一步操作,使用 join 方法即可。示例如下:
# 等待线程 p1、p2 都执行完
p1.join()
p2.join()
实现
Python 的多进程通过 multiprocessing 模块的 Process 类实现,它的使用基本与 threading 模块的 Thread 类一致,因此这里就不一步步说了,直接看示例:
# 导入 Process
from multiprocessing import Process
# 创建两个进程实例:p1、p2,method 是要执行的具体方法
p1 = Process(target=method)
p2 = Process(target=method)
# 启动两个进程
p1.start()
p2.start()
# 等待进程 p1、p2 都执行完
p1.join()
p2.join()