知行编程网知行编程网  2022-11-24 23:30 知行编程网 隐藏边栏  6 
文章评分 0 次,平均分 0.0
导语: 本文主要介绍了关于Python中fock()函数如何使用的相关知识,希望可以帮到处于编程学习途中的小伙伴

如何在 Python 中使用 fock() 函数

首先,在python中我们要实现多进程,有两个模块可以用:

1)os中的fork()函数

2)multiprocessing模块


fork()函数

函数原型:

Help on built-in function fork in module posix:
fork(...)
    fork() -> pid
    Fork a child process.
    Return 0 to child process and PID of child to parent process.

从fork()函数原型来看,它也属于一个内建函数。

子进程总是返回0,而父进程返回子进程的ID。这样做的原因是一个父进程可以fork()多个子进程,所以父进程必须记录每个子进程的ID,子进程只需要调用getppid()获取父进程的ID即可。

Python的进程函数fork()在os模块中。下面是一个过程的例子:

import os
print os.getpid() #获取子进程的进程号
pid = os.fork()
if pid == 0 :
  print 'I am child process (%s) and my parent is %s.' % (os.getpid(), os.getppid())
else :
  print 'I (%s) just created a child process (%s).' % (os.getpid(), pid)

执行结果:

1526
I (1526) just created a child process (1527).
I am child process (1527) and my parent is 1526.

通过 fork 调用,当进程接收到新任务时,它可以复制一个子进程来处理新任务。常见的Apache服务器是父进程监听端口。一旦有新的http请求,子进程就会被fork出来处理新的http请求。

再看一个例子:

#coding=utf-8
import os
os.fork()
print 1

执行结果:

1
1

程序中,在父进程中创建子进程,子进程运行打印一个1,返回父进程再打印一个1,所以结果是打印了两个1。


注意:

以上创建进程的函数在Unix/Linux下都有,在Windows下没有,那么在Windows下用什么来实现多进程呢?

Python既然是跨平台的,自然应该提供跨平台的多进程支持。 multiprocessing模块是多进程模块的跨平台版本,支持子进程,通信和共享数据,执行不同形式的同步。

multiprocessing模块提供了一个Process类来创建一个新的进程对象。

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写
扫一扫二维码分享