我的程序中可以运行多少个线程?

我的程序中可以运行多少个线程?

我有一个使用线程模块并运行执行函数的多线程的 Python 程序。下面的数字 8 是程序中的线程数,但我需要知道我的设备可以处理的线程数,以便尽可能快地运行程序。

以下是我的python程序中涉及的部分:

for i in range(8):
      t = ThreadUrl(q)
      t.setDaemon(True)
      t.start()

在哪里q = queue.Queue()

我的设备 CPU 数据是(使用lscpuUbuntu 18.04 中的命令):

Architecture:        x86_64
CPU op-mode(s):      32-bit, 64-bit
Byte Order:          Little Endian
CPU(s):              8
On-line CPU(s) list: 0-7
Thread(s) per core:  2
Core(s) per socket:  4
Socket(s):           1
NUMA node(s):        1
Vendor ID:           GenuineIntel
CPU family:          6
Model:               94
Model name:          Intel(R) Core(TM) i7-6700HQ CPU @ 2.60GHz
Stepping:            3
CPU MHz:             1899.473
CPU max MHz:         3500.0000
CPU min MHz:         800.0000
BogoMIPS:            5184.00
Virtualization:      VT-x
L1d cache:           32K
L1i cache:           32K
L2 cache:            256K
L3 cache:            6144K
NUMA node0 CPU(s):   0-7

您能告诉我我的程序可以处理多少个线程而不会导致问题吗?请问这个数字是如何计算的?

答案1

您能告诉我我的程序可以处理多少个线程而不会引起问题吗?

i7-6700HQ 是 4 核处理器。每个核心支持Intel® Hyper-Threading Technology。这意味着您的处理器可以支持 8 个线程。

下面的数字 8 是程序中的线程数,但我需要知道我的设备可以处理多少个线程,才能尽快运行程序。

您的代码已经针对您现有的硬件进行了优化。

在此处输入图片描述

在此处输入图片描述

相关内容