首页 > 编程语言 >python-pool.map()用法

python-pool.map()用法

时间:2023-06-02 15:44:41浏览次数:34  
标签:map get python res ThreadPool ans pool

ThreadPool().map()是Python中multiprocessing库中的一个函数,用于并行地处理可迭代对象中的元素。它的基本语法如下:

其中,get_ans是一个处理元素的函数,num代表可迭代对象中的每个元素,list1是一个可迭代对象,例如列表、元组、集合等。processes参数指定了线程池中的线程数量,res是处理完所有元素后返回的结果列表。

from multiprocessing.dummy import Pool as ThreadPool
from app01.utils import get_ans

list1 = [1,2,3,4,5]
pool = ThreadPool(processes=4)  # 如果只能产生4个线程处理list1中的5个元素,那么第5个元素就要等前面的元素处理完才能继续处理
res = pool.map(get_ans, list1)  # res是一个列表,用来接收处理之后的数据
pool.close()
pool.join()
print(res)  # [1, 4, 9, 16, 25]

utils.py:

def get_ans(num):
    return num**2
'''必须要return出去,res列表中才能存储处理之后的数据'''

在使用ThreadPool().map()时,需要注意以下几点:
1.get_ans函数必须是一个独立的函数,不能是类方法或实例方法。
2.get_ans函数的参数个数必须为1,即只能接受一个参数。
3.list1对象中的元素会按照顺序依次传递给get_ans函数进行处理,因此get_ans函数的处理结果也会按照顺序依次存储在res列表中。
4.如果iterable对象中的元素数量较少,使用ThreadPool().map()可能会比普通的for循环更慢,因为线程池的创建和维护需要一定的时间和资源。因此,ThreadPool().map()更适合处理大规模的数据集

标签:map,get,python,res,ThreadPool,ans,pool
From: https://www.cnblogs.com/ERROR404Notfound/p/17451972.html

相关文章

  • 关于python下载pyautogui库报错【ERROR: Command errored out with exit status 1:】
    问题出现: 解决方案:先执行该命令  【pipinstall--upgradesetuptools&&python-mpipinstall--upgradepip】之后再重新执行下载命令  【pipinstallpyautogui-ihttps://pypi.tuna.tsinghua.edu.cn/simple】即可......
  • python使用cx_Oracle连接timesten
    环境:OS:WindowsDB:18.1  1.配置环境变量TNS_ADMIN=C:\TimesTen\tt181_64\network\admin 2.创建tnsnames.ora文件在timesten安装目录下C:\TimesTen\tt181_64\network\admin\samples拷贝一个tnsnames.ora到C:\TimesTen\tt181_64\network\admin进行修改 3.修改tnsnames......
  • python3 -m pip install --upgrade的作用
    `python3-mpipinstall--upgrade`是一个命令行指令,用于升级Python包管理器(pip)已安装的包。具体来说,命令的不同部分的含义如下:-`python3`:这是一个命令,用于在命令行中运行Python解释器。-`-mpip`:这是一个Python的内置模块,用于管理Python包的安装和卸载。-`inst......
  • [Python]-numpy模块-反转数组的三种方法
    给定一个一维numpy数组,反转数组的三种方法:切片索引numpy.flipud()函数numpy.flip()函数importnumpyasnpa=np.array([1,2,3,4,5])#切片索引ans1=a[::-1]print(ans1)#[54321]#numpy.flipud()函数ans2=np.flipud(a)print(ans2)#[54321]#n......
  • Python编程入门常用代码
    这些代码片段涵盖了Python编程的一些常用方面,包括日期和时间操作、列表排序、字符串格式化、文件读写以及包和模块的使用。继续探索和学习这些概念,以及其他相关的Python特性,将使你的编程能力不断提升。1.输出语句:print("Hello,World!")#打印字符串2.变量和赋值:x=5#整数y......
  • Python编程入门常用代码
    这些代码片段涵盖了Python编程的一些常用方面,包括日期和时间操作、列表排序、字符串格式化、文件读写以及包和模块的使用。继续探索和学习这些概念,以及其他相关的Python特性,将使你的编程能力不断提升。1.输出语句:print("Hello,World!")#打印字符串2.变量和赋值:x=5#整数y......
  • Python编程入门常用代码
    这些代码片段涵盖了Python编程的一些常用方面,包括日期和时间操作、列表排序、字符串格式化、文件读写以及包和模块的使用。继续探索和学习这些概念,以及其他相关的Python特性,将使你的编程能力不断提升。1.输出语句:print("Hello,World!")#打印字符串2.变量和赋值:x=5#整......
  • Python function argument All In One
    PythonfunctionargumentAllInOnePython函数参数https://docs.python.org/3/library/typing.htmlhttps://docs.python.org/3/library/typing.html#typing.ParamSpec.argsfunctionargumenttypesdefaultargumentskeywordargumentspositionalargumentsarbitrary......
  • # yyds干货盘点 # #经验分享# #网络爬虫# #数据分析# #Python# #每日打卡# #进阶学习#
    大家好,我是皮皮。一、前言前几天在Python群【洋洋】问了一个Python基础的问题,这里拿出来给大家分享下。二、实现过程这里【kim】给出了代码,如下所示:的确满足了粉丝的需求。很多人应该和我一样,想到的是zip吧。zip完全可以,可是他说要for,所以上面演示的是for循环。那么如果通过zip函数......
  • Adafruit CircuitPython NeoPixel All In One
    AdafruitCircuitPythonNeoPixelAllInOneRaspberryPi&Python&WS2812BRGBLEDStripneopixel#installforcurrentuser$pip3installadafruit-circuitpython-neopixel#installsystem-wide$sudopip3installadafruit-circuitpython-neopixe......