什么是进程?
程序执行的时候就是进程,一个进程可以有一个线程,也可以有多个线程,多线程之间的执行由系统调度,看起来像同时执行
什么是线程?
每个程序在运行的时候(进程)系统都会为进程创建一个线程,这个线程就是主线程,线程内部的任务是串行执行
1、使用threading模块
import time
import random
import threading
def download(file):
print(file,threading.current_thread())
print(time.ctime(),"开始下载:{}".format(file))
temp=random.randint(5,10)
time.sleep(temp)#将当前线程阻塞指定的时间,时间单位是秒
print(time.ctime(),"下载{}结束".format(file),"总耗时:{}".format(temp))
if __name__ =='__main__':
#1、创建一个线程对象
'''
Thread(target= ,args=)
target:需要传递一个在子线程中执行的函数
agrs:在子线程中调用target函数应该传递的参数,类型是元组
'''
t1=threading.Thread(target=download,args=("肖申克的救赎",))
t2 = threading.Thread(target=download, args=("阿甘正传",))
t1.start()
t2.start()
2、自定义线程
(1)写一个类继承Thread类
(2)实现当前类的run方法,run中的任务就是子线程中执行的任务
(3)创建当前类的对象,就是线程对象,用start去执行
import threading
import time
class DonwloadThread(threading.Thread):
def __init__(self,file):
super().__init__( )
self.file=file
def run(self):
print("时间:{};开始下载文件:{}".format(time.ctime(),self.file))
time.sleep(5)
print("时间:{};结束下载文件:{}".format(time.ctime(), self.file))
t1=DonwloadThread("肖申克的救赎")
t1.start()
网友评论