【问题标题】:How to increase number of threads in Python multithreading?如何增加 Python 多线程中的线程数?
【发布时间】:2021-06-17 14:47:52
【问题描述】:

我正在使用 Python3 开发一个多线程应用程序。 我想为后端服务器一次运行超过 100k 个线程,但线程最多创建 10k 个。 我认为我的服务器 pc 有足够的资源用于很多线程。(cpu,ram)。 Python3多线程如何增加线程数?

for i in range(0, 1000000):
    t = i.Thread(target=func, args=(i))
    t_list.append(t)

for t in t_list:
    t.start()

【问题讨论】:

  • 你的服务器电脑上是否有线程限制的设置?
  • @rhavelka,当然。 echo 1000000 > /proc/sys/kernel/threads-max, ulimit -s 256, ulimit -i 1000000.
  • 出于好奇,这些线程分别代表什么?通常,明智的做法是将线程(即可以工作的事物)与任务(需要完成的工作单元)分离。您最终可能会编写更多代码,但取决于任务状态对象的大小,您最终可能会节省 大量 内存。

标签: python multithreading


【解决方案1】:

我要争辩说“你不应该那样做”。很少需要这么多线程,或者系统可以很好地处理它。线程并不是处理大量传入请求的神奇解决方案。

相反,我建议您在“池”中创建有限数量的线程,并使用队列或类似机制将任务发送到池。有关如何实现此类功能的详细信息,请参阅this answer

【讨论】:

    猜你喜欢
    • 2011-09-18
    • 2015-12-09
    • 1970-01-01
    • 2023-02-26
    • 1970-01-01
    • 1970-01-01
    • 2015-05-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多