python线程池与进程池基础学习(python 线程池)

liftword20小时前技术文章6

一.基础介绍

当我们需要执行的任务较多时,例如爬取多页数据,需要创建多个线程或者进程来提高效率,而一个一个创建线/进程就比较麻烦,这时我们就可以使用线程池/进程池。

线程池的作用就是开辟一些线程,我们直接给线程池提交任务,线程任务的调度交给线程池来完成。

线程池的基类是concurrent.futures模块中的Executor,Executor提供了两个子类,即ThreadPoolExecutor和ProcessPoolExecutor,其中ThreadPoolExecutor用于创建线程池,而ProcessPoolExecutor用于创建进程池。

使用线程池来执行线程任务的步骤如下:

1. 调用 ThreadPoolExecutor 类的构造器创建一个线程池。
2. 定义一个普通函数作为线程任务。
3. 调用 ThreadPoolExecutor 对象的 submit() 方法来提交线程任务。
4. 当不想提交任何任务时,调用 ThreadPoolExecutor 对象的 shutdown() 方法来关闭线程池。

二.python实例学习

from concurrent.futures import ThreadPoolExecutor,ProcessPoolExecutor

def son(para):
    for i in range(500):
        print(para,i)

if __name__ == '__main__':
    with ThreadPoolExecutor(66) as tpool:
        for i in range(100):
            tpool.submit(son,para = f'线程{i}')

    print("线程池任务执行完毕")

with ThreadPoolExecutor(66) as tpool表示创建线程池,然后submit(func, *args)表示将任务函数func(son)交给线程池,*args为任务函数的参数。运行结果(部分截取)如下:

此外,当线程池将任务执行完毕才能进行下一步,即:

#头条创作挑战赛#

相关文章

一文了解 Python 中的线程池:高效并发编程的秘密武器

在 Python 编程的广阔天地里,我们常常会遇到需要同时处理多个任务的场景。想象一下,你正在开发一个网络爬虫,需要同时从多个网页上抓取数据;又或者你在处理大量的文件,需要同时对不同的文件进行读取、分...

Python并发编程中的设计模式(python 并发编程)

在现代软件开发中,并发编程已经成为提升应用性能和用户体验的关键技术。随着多核处理器的普及和分布式系统的广泛应用,掌握并发编程的设计模式变得越来越重要。本文将深入探讨Python中常用的并发编程设计模式...

24-3-Python多线程-线程队列-queue模块

3-1-概念queue模块提供了多线程编程中的队列实现,队列是线程安全的数据结构,能在多线程环境下安全地进行数据交换。3-2-queue 的队列类型Queue(先进先出队列)、LifoQueue(后进...

一分钟快速部署Django应用(django部署到linux)

在Python Web开发方面,Django的用户人数应该是最多的。很多开发者在完成应用开发之后,都会面临线上部署Django应用这个头疼的问题。当初我在部署“编程派”网站时,就碰到了很多障碍,折腾了...

使用Python进行并发编程(python 并发编程)

让计算机程序并发的运行是一个经常被讨论的话题,今天我想讨论一下Python下的各种并发方式。并发方式线程(Thread)多线程几乎是每一个程序猿在使用每一种语言时都会首先想到用于解决并发的工具(JS程...

从零构建Python响应式编程的核心原理与实现方法

响应式编程是一种以数据流和变化传播为核心的编程范式,它允许我们以声明式的方式处理异步数据流。在当今复杂的应用环境中,响应式编程正逐渐成为处理事件驱动型应用、实时数据处理以及交互式用户界面的重要方法。本...