hellosuchao

(先分享一个Python在线编程的网站http://www.pythontip.com/coding/skulpt-interactive/)

(本文为原创作品,欢迎转载,转载请注明出处)

一、概念

  进程说白了就是一段运行的程序,操作系统给这段正在运行的程序分配内存、CPU、磁盘、GPU资源等。

系统中运行的进程:

二、python中使用进程实现多任务

1、使用fork创建进程:

在Unix/Linux系统中,使用Python中OS模块下的fork函数可以创建出子进程实现多任务。

我们先通过代码来看看在Python中使用进程实现多任务,代码如下:

import os

import time

res = os.fork()

if(res==0):

  while True:

    print('------1--------')

    time.sleep(1)

else:

  while True:

    print('------2--------')

    time.sleep(1)

代码解析与说明:

  可以将整段代码看作为主进程,当代码运行到os.fork()的时候主进程会创建出一个子进程,前面我们说过进程就是一段运行着的程序,子进程中的程序相当于是从父进程拷贝了一份出来一样。此时主进程跟子进程同时运行代码,而子进程中os.fork()的返回值为0,而主进程中os.fork()的返回值为子进程的进程id号,通过if -else语句就同时能执行两个死循环语句了。

图解:

2、使用multiprocessing创建进程:

有的同学可能就要问了使用fork只能在Linux/Unix系统中实现进程的创建,那么我的电脑是Windows的怎么办呢?肯定是有办法的了。可以使用multiprocessing模块创建进程,而且multiprocessing既可以在Unix/Linux中使用又可以在Windows中使用。

先撸一段代码吧:

from multiprocessing import Process

import time

 

# 子进程要执行的代码(封装成一个函数)

def  proc():

  while True:

    print('------1--------')

    time.sleep(1)

if __name__=='__main__':

  p=Process(target=proc)

  p.start()

  while True:

    print('------2--------')

    time.sleep(1)

 

 

三、总结

  虽然通过进程可以实现多任务,但是就像上面提到的一样,操作系统会为每个进程分配内存、Cpu等资源,滥用进程去实现多任务并不是一件明智的事情,那么用什么去实现多任务呢?答案是线程和协程,如果想知道怎么实现就请关注我吧,我会在以后的博文说明怎么通过线程和协程实现多任务。

    

  


 

分类:

Python

技术点:

相关文章:

  • 2017-11-24
  • 2018-02-02
  • 2018-11-22
  • 2019-09-16
  • 2021-12-09
  • 2018-07-28
  • 2018-12-19
  • 2019-08-22
猜你喜欢
  • 2018-05-15
  • 2021-03-13
  • 2018-06-08
  • 2018-07-12
  • 2018-12-20
  • 2021-10-19
相关资源
相似解决方案