• 技术文章 >Python技术 >Python高级

    Python中fock()函数如何使用

    爱喝马黛茶的安东尼爱喝马黛茶的安东尼2019-06-29 14:43:43原创2025

    首先,在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视频教程

    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,所以结果是打印了2个1。

    注意:

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

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

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

    相关推荐:

    Python中的多进程是什么

    专题推荐:python fock
    品易云
    上一篇:Python中的协程是什么 下一篇:Python中的threading模块是什么

    相关文章推荐

    • Python如何进行线程切换• Python中的协程是什么

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网