1、线程和进程的概念
进程:一个进程就是一个程序
线程:线程就是进程里面最小的执行单元
线程是在进程里面的,干活的还是线程
一个进程里面最少有一个线程,可以有多个线程
每个线程之间都是相互独立的,没有真正意义上的并发,电脑的CPU是几核的,最多只能同时运行几个任务
2、多线程
import threading,time
all_res[] #这是用来存储函数的结果的
def run(name):
print('子线程',threading,current_thread())
time.sleep(60)
print('[%s]hhhhh'%name)
name = 'aaa' + name
all_res.append(name)
start = time.time()
threads = [] #存放所有的子线程
for i in range(3): #先统一启动所有的子线程
t = threading.Thread(target = run,args = (str(i),))
thread.append(t)
t.start()
for t in threads: #再统一的去等待子线程执行结束
t.join()
3、多进程
from multiprocessing import Process,Pool,active_children
import pymongo,requests
if __name__ == '__main__':
for qq in all_qq:
p = Process(target = down_img,args = (qq,)) #启动多进程
p.start()
pool = Pool(5) #指定进程池的大小
list(pool.map(down_img,all_qq)) #运行使用进程池