龙空技术网

Python的多进程不是随便用滴

双晨传奇科技 69

前言:

当前咱们对“linuxpython自动补全”大体比较珍视,各位老铁们都想要学习一些“linuxpython自动补全”的相关文章。那么小编在网摘上网罗了一些对于“linuxpython自动补全””的相关知识,希望咱们能喜欢,同学们一起来了解一下吧!

python在处理任务时是带有多线程和多进程的,Python不管是多线程还是多进程都不咋好用,不然自导的django也不会初始化时的并发效率不高。今天我们主要来看下Python的多进程。

首先大家先要了解Linux下的Python对多进程的支持: Linux操作系统提供了一个fork()来进行系统调用,它非常特殊。普通的函数调用,调用一次,返回一次,但是fork()调用一次,返回两次,因为操作系统自动把当前进程(称为父进程)复制了一份(称为子进程),然后,分别在父进程和子进程内返回。

在父子进程生成中,子进程永远返回0,而父进程返回子进程的ID。这样做的理由是,一个父进程可以fork出很多子进程,所以,父进程要记下每个子进程的ID,而子进程只需要调用getppid()就可以拿到父进程的ID。比如正如在CentOS下运行以下代码所示:

以上代码可以得出结论:代码的父进程先生成子进程id是48700,然后48700通过os.getpid获得,而父进程的id通过os.getppid获得,紧接着,当pid=0时,子进程又拿出了父进程的id48699。又生成了这个进程的上一个父进程的pid的值,有点绕,可以多理解下额。 上面的代码在windows上运行是没有多大意义滴。

如果要在windows中使用多进程,那么multiprocessing模块提供了一个Process类来代表一个进程对象,下面的例子演示了启动一个子进程:但是在windows测试时,确没有数据。

记住在windows中运行需要加1个函数机制才能运行

进程池批量启动子进程-Pool

如有错误,不吝赐教!谢谢!!

标签: #linuxpython自动补全