内容字号:默认大号超大号

段落设置:段首缩进取消段首缩进

字体设置:切换到微软雅黑切换到宋体

Python进程知识详解

2018-04-16 17:35 出处:清屏网 人气: 评论(0

一、概念

进程说白了就是一段运行的程序,操作系统给这段正在运行的程序分配内存、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进程

相关文章

发表评论愿您的每句评论,都能给大家的生活添色彩,带来共鸣,带来思索,带来快乐。

CopyRight © 2015-2016 QingPingShan.com , All Rights Reserved.

清屏网 版权所有 豫ICP备15026204号