多线程并发,简称多并发,即多个线程同时执行。一般而言,多线程并发就是把一个任务拆分为多个子任务,然后交由不同线程处理不同子任务,使得这多个子任务同时执行。
赛程(主线程)启动后,每个运动员(都是一个子线程)都开始按照自己的轨迹运行。
python中是可以实现多线程并发的。python编程需要借助于threading模块。threading 模块中最核心的内容是 Thread 这个类。
简单来看下这个类的定义:
class threading.Thread(group=None, target=None, name=None, args=(), kwargs={}, *, daemon=None)
在Thread这个类定义的参数中,有一个参数是“target”,即传一个回调函数对象,这就指定了执行这个线程是实际需要调用的另一个程序。
回到文章开头的问题,程序运行时默认就是在主线程上,接着我们使用Thread这个类再创建一个副线程,在这个副线程上调用另一段的程序,这样就可以实现在主线程运行时,同时再额外运行另一个线程的目的。
接下来简单来做个测试:
先定义下主线程也即主程序的内容。
import time
for i in range(5):
print("我是主线程,运行进度:{}%".format((i+1)/5*100))
time.sleep(1)
以下是主线程也即主线程的运行效果。
然后我们在主程序中插入一个副线程,并定义好线程调用的程序,代码如下。
import time
import threading
def funct_thread():
for i in range(5):
print("我是副线程,运行进度:{}%".format((i+1)/5*100))
time.sleep(1)
thread = threading.Thread(target=funct_thread)
thread.start()
for i in range(5):
print("我是主线程,运行进度:{}%".format((i+1)/5*100))
time.sleep(1)
运行后的效果如下:
上面测试的效果出来了,也即副线程启动后,并没有影响主线程的运行,双方各自按照自己的节奏在执行自己的业务,直到两个线程都运行完毕。
本文完