> For the complete documentation index, see [llms.txt](https://close.gitbook.io/yun-wei-bi-ji/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://close.gitbook.io/yun-wei-bi-ji/python/python-xiao-ji-qiao/huo-qu-cpu-gen-ju-cpu-shu-liang-fen-pei-xian-cheng-shu.md).

# 获取cpu，根据cpu数量分配线程数

> 获取 CPU 数量并根据其数量分配线程数，你可以使用 Python 中的 `os` 模块和 `multiprocessing` 模块

```python
import os
import multiprocessing

def get_cpu_count():
    """获取 CPU 数量"""
    return os.cpu_count()

def allocate_threads():
    """根据 CPU 数量分配线程数"""
    cpu_count = get_cpu_count()
    if cpu_count is None:
        return 1              # 如果无法获取 CPU 数量，则默认为一个线程
    elif cpu_count == 1:
        return 1              # 如果只有一个 CPU，则使用一个线程
    else:
        return min(cpu_count * 2, 16)  #  根据 CPU 数量动态分配线程数；min() 函数用于在多个参数中找到最小值, 例如，最多使用 16 个线程

if __name__ == "__main__":
    num_threads = allocate_threads()
    print(f"CPU 数量: {get_cpu_count()}")
    print(f"线程数量: {num_threads}")
```
