Python进程

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

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

一、概念

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

系统中运行的进程:

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

1、使用fork创建进程:

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

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

 1 import os
 2 
 3 import time
 4 
 5 res = os.fork()
 6 
 7 if(res==0):
 8 
 9   while True:
10 
11     print('------1--------')
12 
13     time.sleep(1)
14 
15 else:
16 
17   while True:
18 
19     print('------2--------')
20 
21     time.sleep(1)

 

代码解析与说明:

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

图解:

2、使用multiprocessing创建进程:

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

先撸一段代码吧:

 1 from multiprocessing import Process
 2 
 3 import time
 4 
 5  
 6 
 7 # 子进程要执行的代码(封装成一个函数)
 8 def  proc():
 9 
10   while True:
11 
12     print('------1--------')
13 
14     time.sleep(1)
15 
16 if __name__=='__main__':
17 
18   p=Process(target=proc)
19 
20   p.start()
21 
22   while True:
23 
24     print('------2--------')
25 
26     time.sleep(1)

 

 

 

三、总结

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

    

  


 

转载于:https://www.cnblogs.com/hellosuchao/p/8780663.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值