美文网首页软件测试精进之路
浅谈fork()实现多进程

浅谈fork()实现多进程

作者: 胆小的米老鼠 | 来源:发表于2018-08-04 14:21 被阅读24次

工作8小时之外的努力,才是你超越别人的最好方法

我们今天来简单看一下在Linux/unix下创建的多进程的方法和简单应用,多进程在实际开发中是 非常重要的。可以同时运行多个任务。还是直接上代码:

  1 import  os
  2 import time
  3 
  4 res = os.fork()
  5 if res == 0 :
  6     while True:
  7         time.sleep(2)
  8         print("-----1----")
  9 else:
 10     while True:
 11         time.sleep(2)
 12         print("------2----")
 13 

代码中没有写注释,在这我们逐一来看看这一小段代码发生了什么事情?
首先是导入ostime这两个包,这个不用多说了,相信大家都明白

关键是在第三行res = os.fork()

在这里我们引用os.fork(),这个frok作用就是再创建一个了进程,而原先的程序称为主进程或者父进程,主进程和子进程都会从这句开始执行程序。我们来看一下效果:

python@ubuntu:~/python$ python 0804.py 
------2----
-----1----
------2----
-----1----
------2----
-----1----
------2----
-----1----
------2----
-----1----
------2----
-----1----
------2----

其实我们这样看不出来是同时执行,大家运行一下代码就会发出21是同时被输出到屏幕上的。

接下来我们说一下,主进程和子进程的各自执行的是那段代码。当程序执行到res = os.fork()的时候,在创建子进程的同时,计算机系统会自动给主进程分配一个大于0的结果,给子进程分配一下小于0的结果,来区分主进程和子进程各执行那段程序代码。更深的内容在学习之后会发布出来,大家一起学习探讨!

相关文章

  • 浅谈fork()实现多进程

    工作8小时之外的努力,才是你超越别人的最好方法 我们今天来简单看一下在Linux/unix下创建的多进程的方法和简...

  • 系统编程--进程函数

    一、fork() 拷贝父进程,子进程的fork不执行,返回0,执行fork之后的所有代码父进程的fork返回子进程...

  • Android系统启动

    所有的进程都是init进程的子进程或孙进程。是init进程fork出子进程 fork:fork函数UNIX及类UN...

  • fork()系统调用

    fork() 函数简介 fork系统调用用于创建一个新进程,称为子进程,它与进行fork()调用的进程(父进程)并...

  • python多进程学习笔记

    fork方式创建进程 简单的fork 主进程fork时返回值大于0,子进程fork时返回值等于0 os.getpi...

  • 进程相关fork()/exec()/wait()

    fork() fork()将父进程复制一份子进程, 在子进程中从fork()调用处继续执行, 之后的代码在父子进程...

  • Android Zygote进程和app进程fork过程分析2

    进程fork的一些知识 在分析app进程fork时,先来简单普及进程fork相关的一些知识,后面会用到fork子进...

  • 05-学会几个系统调用:咱们公司能接哪些类型的项目?

    立项服务与进程管理 创建进程的系统调用叫作 fork。在 Linux 里,当父进程调用 fork 创建进程的时候,...

  • Head First C学习之用fork()+exec()运行子

    用fork()克隆进程 因为当用exec()函数运行新进程来替换当前进程是,原进程将立即终止。 fork()回克隆...

  • 多进程(fork)

    Fork: 产生:使用fork函数得到的子进程从父进程的继承了整个进程的地址空间,包括:进程上下文、进程堆栈、内存...

网友评论

    本文标题:浅谈fork()实现多进程

    本文链接:https://www.haomeiwen.com/subject/xqhmvftx.html