python多进程和多线程的效率

  • python多进程和多线程通过multiprocessing和threading两个模块实现,由于python是c写的,所以和C语言的多进程和多线程基本相同,唯一不同的是python多线程并没有利用多核cpu的并行处理能力,无论开启多少个线程,始终只占用一个核心的cpu利用率,原因在于GIL(全局解释器锁)限制了同一时刻只能有一个线程在运行,GIL有其历史原因,至今依然存在主要在于python本身运行效率远低于c,若需要多线程处理,直接调用c的接口即可,也可以采用python的多进程来处理。下面具体分析一下python多进程和多线程的效率孰优孰劣
  • 单核cpu
    多线程效率高于多进程
  • 多核cpu
    对于cpu密集型任务,多进程的效率高于多线程,对于IO密集型任务,当任务数超出核心一定数量后,多线程效率高于多进程

标签: none

添加新评论