软件测试精进之路

浅谈fork()实现多进程

2018-08-04  本文已影响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的结果,来区分主进程和子进程各执行那段程序代码。更深的内容在学习之后会发布出来,大家一起学习探讨!

上一篇 下一篇

猜你喜欢

热点阅读