Python进程
(先分享一个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等资源,滥用进程去实现多任务并不是一件明智的事情,那么用什么去实现多任务呢?答案是线程和协程,如果想知道怎么实现就请关注我吧,我会在以后的博文说明怎么通过线程和协程实现多任务。