1.多线程
进程:系统中正在运行的一个应用程序
特点:每个进程都是相互独立的,每个进程都在其专用且受保护的内存空间中
线程:一个进程至少有一个线程
线程是串行的,
延时:sleep(时间):会将当前线程指定的时间,单位秒(s)
import time
time.sleep(5)
多线程:一个进程可以开启多条线程,每条线程可以并行执行不同的任务
多线程可以提高程序的执行效率
多线程的原理:同一时间cpu只能处理1条线程,只有1条线程在工作;cpu快速地在多条线程之间调度(切换)
每个程序在运行的时候系统都会为这个进程创建一个线程,这个线程我们叫主线程。程序员自己创建的线程叫子线程
多个任务在一个线程中是按顺序一个一个执行的(串行)
多个线程的任务同时执行
1.创建子线程对象:
Thread(target=,args=)
target:需要传一个需要在子线程中执行的函数(类型是function的变量)
args:在子线程中调用target对应的函数该传什么函数,类型是元祖
2.让子线程执行
import threading
t1 = threading.Thread(target = ,args = )
t1.start()
current_thread()获取当前线程
创建线程的方式2:
直接通过Thread类创建对象,将需要在子线程中执行的函数作为target参数传送过去
方式2:写一个自己的类去继承Thread类,实现当前类的run方法,run方法中的任务就是在子线程中执行的任务;创建当前类的对象,就是线程对象,然后调用start去执行线程中的任务
需要传参就通过当前类来传。
class DownLodeThread(Thread):
def init(self,file):
super().init()
self.file = file
def run(self):
print(file)
t1 = DownLodeThread("file")
t1.start() #开始子线程
t1.run() #调用run(),不是子线程