当前位置: 首页 > 面试题库 >

Python多线程max_workers

琴光亮
2023-03-14
问题内容

根据该文件的ThreadPoolExecutor

如果max_workersNone或者没有给出,将默认为机器上的处理器数量。

如果我不设置这样的值

ThreadPoolExecutor(max_workers=None)

如果我的价值很低(2),对性能是否不利?python是否已经为None值分配了所有CPU进程,而对于带有数字的值只分配了2个?


问题答案:

首先,您似乎在链接中引用了文档中错误的部分,即用于进程而不是线程的部分。在一个concurrent.futures.ThreadPoolExecutor状态:

改变在3.5版本中:如果max_workersNone还是没有给出,将默认为机器,再乘以5上的处理器数量,假设的ThreadPoolExecutor通常用于重叠I
/ O,而不是CPU的工作,工人的数量应该更高超过ProcessPoolExecutor的工人数量。

由于您使用的是线程而不是进程,因此假设您的应用程序是IO绑定的,而不是CPU绑定的,并且您将其用于并发而不是并行性。您使用的线程越多,您将实现的并发性越高(最高),但是获得的CPU周期就越少(因为会有上下文切换)。您必须在典型的工作负载下对应用程序进行检测,以查看最适合您的应用程序。对此没有通用的最佳解决方案。



 类似资料:
  • 本文向大家介绍理解python多线程(python多线程简明教程),包括了理解python多线程(python多线程简明教程)的使用技巧和注意事项,需要的朋友参考一下 对于python 多线程的理解,我花了很长时间,搜索的大部份文章都不够通俗易懂。所以,这里力图用简单的例子,让你对多线程有个初步的认识。 单线程   在好些年前的MS-DOS时代,操作系统处理问题都是单任务的,我想做听音乐和看电影两

  • 我想在选项卡中同时打开和登录5个选项卡,而不会延迟。我尝试过: 但它是: Traceback(最近的最后一次调用):文件"C:\用户\1024983\AppData\本地\程序\Python\Python37\lib\threading.py",第870行,在运行自己。_target(*自己。_args,**自己。_kwargs)文件"C:\用户\1024983\AppData\本地\程序\Pyt

  • 9.3.4 Python 多线程编程 很多编程语言都支持多线程编程,Python 语言亦然。与其他编程语言相比,Python 的 多线程编程是非常简单的。 Python 提供了两个支持线程的模块,一个是较老的 thread 模块,另一个是较新的 threading 模块。其中 threading 采用了面向对象实现,功能更强,建议读者使用。 thread 模块的用法 任何程序一旦开始执行,就构成了

  • 主要内容:多线程使用流程,Queue队列模型,多线程爬虫案例网络爬虫程序是一种 IO 密集型程序,程序中涉及了很多网络 IO 以及本地磁盘 IO 操作,这些都会消耗大量的时间,从而降低程序的执行效率,而 Python 提供的多线程能够在一定程度上提升 IO 密集型程序的执行效率。 如果想学习 Python 多进程、多线程以及 Python GIL 全局解释器锁的相关知识,可参考《Python并发编程教程》。 多线程使用流程 Python 提供了两个支持多线

  • 本文向大家介绍详解Python多线程,包括了详解Python多线程的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家解析了Python多线程,供大家参考,具体内容如下 1、多线程的理解 多进程和多线程都可以执行多个任务,线程是进程的一部分。线程的特点是线程之间可以共享内存和变量,资源消耗少(不过在Unix环境中,多进程和多线程资源调度消耗差距不明显,Unix调度较快),缺点是线程之间的同步和

  • 本文向大家介绍Python多线程实例教程,包括了Python多线程实例教程的使用技巧和注意事项,需要的朋友参考一下 本文以实例形式较为详细的讲解了Python的多线程,是Python程序设计中非常重要的知识点。分享给大家供大家参考之用。具体方法如下: 用过Python的人都会觉得Python的多线程很类似于Java的多线程机制,但是比JAVA的多线程更灵活。在早期的Python多线程实现中,采用了