Python 线程池 ThreadPoolExecutor(一) - Python零基础入门教程
发布时间:2026/9/3 17:32:24 作者:尧图编辑部 阅读量:1,286
 - Python零基础入门教程)
目录零基础 学习路线推荐 : 学习目录 基础入门一. 线程池前言就在先前的文章里面, 我们已然介绍了好些跟线程相关的知识点, 像线程互斥锁Lock, 像线程事件Event, 像线程条件变量等等, 然而今天要给大伙讲解的是线程池, 说不定好多小伙伴会感到疑惑, 模块能够创建线程, 同样能够创建线程, 这两者究竟有着啥区别呢?明明皆悉, 于程序里运用线程能够提升运行效率, 虽说线程身为计算机的最小单元, 然线程的创建以及使用同样会占用计算机资源并且产生开销, 一旦创建数以千计乃至万计的线程, 计算机同样会陷入死机状态一个合乎情理的程序始终都是以耗费最少的资源去做最多的事情, 如同公司老板, 始终都想着以最少的资金, 招聘最少的人员, 去做最多的事情哪个二货在背后说我二. 线程池原理人们都曾运用过迅雷进行下载, 在同时开展1000个任务甚至更多任务之际, 哪怕开通了vip, 同时能够下载的数量也仅仅是8个。要是同时去创建1000个线程, 首先对于计算器而言开销也是极大的, 并且每次仅仅运行8个线程, 还需要不断地去创建以及销毁, 如此一来就会显得极为麻烦。然而采用线程池, 便能将上面提及的问题予以解决, 实际上仅仅需要8个线程便可, 每个线程分别分配一个任务, 剩余的任务进行排队等候, 当某一个线程完成了任务之际, 排队的任务便能够安排给这个线程持续执行, 这便是所谓的线程池原理三. 线程池, 函数介绍四之线程池, 简单使用usr / bin / env, 此指以UTF - 8编码, 且带有一定路径相关设置及用途标识还有此“- -”及“_ -”存在于其中:猿说编程Blog(个人博客地址):File: 线程池 .pyTime:2021/05/05 07:37座右铭: 没有一步步的积累, 没法到达千里之远的地方, 没有一点点小水流的汇聚, 不能够形成江海, 程序人生的精彩, 需要持之以恒地积累from .time参数times用来模拟下载的时间def (times):time.sleep(times)打印双引号内的内容: “down video {}s ”, 其中大括号内的值为times这个变量的值。times (2)# 通过函数提交执行的函数到线程池中函数立即返回不阻塞task1 .(, (3))task2 .(, (2))# done方法用于判定某个任务是否完成显示, “任务1是否已然完成: ”这般内容, 借助, task1.done()这个表达, 来予以展示。存在一种方法, 其作用是用于取消某个任务, 只有当该任务没有被放入在其中的线程池中时, 才能够使得取消操作成功完成。print(取消任务2,task2.())time.sleep(4)print(任务1是否已经完成,task1.done())# 方法可以获取task的执行结果print(task1.())输出结果任务1是否已经完成 False取消任务2 Falsedown video 2sdown video 3s任务1是否已经完成 True线程池, 其使用远远不止这样, 鉴于篇幅受限, 对于线程池, 以及map函数, 还有wait函数, 和线程池的阻塞情况、执行顺序的相关介绍, 需参考线程池二。