![]() |
1
2
简而言之,没有这样的方法。声明池后,如果不先关闭池并重新创建它,就无法更改工作线程的数量。也没有办法使池馈送任务的速度低于工人的最大速度。 你有几个(不是那么理想的)选择。 一种是向worker添加基于全局变量的睡眠。然后,您可以使用任务完成的回调来测量实际速度并相应地调整变量。但如果睡觉是不可能的,这就行不通了。 更好的方法(尽管更加繁重)是自己编写任务管理器。在此版本中,您不使用池,而是编写一个管理工作进程的类。您生成了“足够多”的工作人员,这些工作人员会侦听任务队列。您将以所需的速度从经理处输入此队列。您将队列设置为具有非常低的最大大小,如果您的经理检测到队列已满,则会生成另一个工作线程。 但是没有内置的功能来做您想要做的事情,这意味着需要做一些工作,或者您需要重新设计您的程序,这样您就不会一次性将所有任务提供给池,而是在那里进行一些限制。 |
![]() |
Iorek · Python线程打印覆盖自身[重复] 7 年前 |
![]() |
abdelrahman · 具有PyQt5多线程的Python GUI 7 年前 |
![]() |
Oliver Frost · 使用线程在后台持续运行的函数? 7 年前 |
![]() |
Elinoter99 · Python调用脚本而不等待其执行 7 年前 |
|
JohannB · Python线程连接死线程 7 年前 |
![]() |
Bastian · 如何在上下文管理器中使用线程? 7 年前 |
![]() |
anoneemus · Python套接字窃取彼此的数据包 7 年前 |
![]() |
Shawn H. · 使多线程执行单个命令 7 年前 |