我有一个使用线程模块并运行执行函数的多线程的 Python 程序。下面的数字 8 是程序中的线程数,但我需要知道我的设备可以处理的线程数,以便尽可能快地运行程序。
以下是我的python程序中涉及的部分:
for i in range(8):
t = ThreadUrl(q)
t.setDaemon(True)
t.start()
在哪里q = queue.Queue()
我的设备 CPU 数据是(使用lscpu
Ubuntu 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
您能告诉我我的程序可以处理多少个线程而不会导致问题吗?请问这个数字是如何计算的?