当前位置: 首页 > 网络应用技术

Python Multi -Process系列多处理模块

时间:2023-03-05 21:20:38 网络应用技术

  Python的线程模块主要用于多线程开发,但是由于GIL的存在,Python中的多线程并不是真正的多线程。如果要完全使用多核CPU的资源,则需要在大多数情况下使用。Multi -Progress.its基本用法功能与线程模块相似。唯一的区别是它使用多进程而不是多线程。每个过程都有自己的独立GIL,因此过程之间不会竞争GIL竞争。

  此外,生成多olssing的另一个原因与不一致的Windows系统和Linux系统有关。Linux系统为系统调用提供了一个fork()函数。此函数一次调用一次,然后返回一次。当调用时,操作系统将自动自动复制当前过程(父进程),然后分别在父进程和子进程中返回。子进程返回0,父进程返回子过程的ID。- 任何意图的过程,父进程都必须写下每个子过程的ID,并且子进程只需要调用getPid()即可获取父进程的ID。Windows不支持使用fork()的使用函数,因此不能在Windows下使用该功能,该Windows对程序的交叉平台使用有很大的阻碍。因此,多处理模块提供了更多用于支持多进程开发的方法。

  过程:用于创建过程

  池:用于创建管理过程池

  队列:用于过程通信,资源共享

  价值:用于过程通信,资源共享

  数组:用于过程通信,资源共享

  管道:用于管道通信

  经理:用于资源共享

  条件:条件变量锁

  事件:事件锁

  锁:相互锁

  RLOCK:递归锁

  信号:信号锁