线程是执行用的,队列是存放结果用的
目录
使用的库为threading,threading是python内置的库
我们每运行一个python文件相当于开启了一个进程,一个进程中有多个线程,如果使用了多线程我们可以在一段py代码中并行运行程序
我下面做个简单的例子
我们发现第一个任务运行的时候,第二个任务并没有等待第一个任务结束后再开始运行,而是开启了任务一后,直接开启任务二
开始的时候会根据start()的顺序开始,结束的时候,线程各自执行不会等待其他的线程
队列常用于处理多线程产生的结果
依次放入1,2,3三个值,然后取三次,发现可以成功的按顺序取出1,2,3
如果队列空了之后再取,就会无限等待?
依次放入1,2,3三个值,然后取三次,发现可以成功的按顺序取出3,2,1
如果队列空了之后再取,就会无限等待
依次放入(2, 'B') ,(1, 'A') ,(3, 'C') 。元组的第一个值是优先级,数字越小优先级越高
如果队列空了之后再取,就会无限等待
我们现在搞一个4线程的线程池,然后搞五个任务
Pool()中间的值是线程的个数,pool.map的第一个参数是要执行什么函数,第二个参数是函数的参数
我们通过上面的结果可以看出,一开始执行了4个任务,等一个任务完成后自动开始执行第五个任务