(先分享一个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进程的更多相关文章

  1. python——进程基础

    我们现在都知道python的多线程是个坑了,那么多进程在这个时候就变得很必要了.多进程实现了多CPU的利用,效率简直棒棒哒~~~ 拥有一个多进程程序: #!/usr/bin/env python #- ...

  2. 使用gdb调试Python进程

    使用gdb调试Python进程 有时我们会想调试一个正在运行的Python进程,或者一个Python进程的coredump.例如现在遇到一个mod_wsgi的进程僵死了,不接受请求,想看看究竟是运行到 ...

  3. python进程、线程、协程(转载)

    python 线程与进程简介 进程与线程的历史 我们都知道计算机是由硬件和软件组成的.硬件中的CPU是计算机的核心,它承担计算机的所有任务. 操作系统是运行在硬件之上的软件,是计算机的管理者,它负责资 ...

  4. Python进程、线程、协程详解

    进程与线程的历史 我们都知道计算机是由硬件和软件组成的.硬件中的CPU是计算机的核心,它承担计算机的所有任务. 操作系统是运行在硬件之上的软件,是计算机的管理者,它负责资源的管理和分配.任务的调度. ...

  5. python进程池剖析(一)

    python中两个常用来处理进程的模块分别是subprocess和multiprocessing,其中subprocess通常用于执行外部程序,比如一些第三方应用程序,而不是Python程序.如果需要 ...

  6. python——进程、线程、协程

    Python线程 Threading用于提供线程相关的操作,线程是应用程序中工作的最小单元. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 #!/usr/bin/env pytho ...

  7. python/进程线程的总结

    python/进程线程的总结 一.进程和线程的描述: 进程:最小的资源管理单位 线程:最小的执行单位 执行一个进程时就默认执行一个线程(主线程) 进程和线程的工作方式: 串行: 假如共有A.B.C任务 ...

  8. python 进程介绍 进程简单使用 join 验证空间隔离

    一.多道程序设计技术(详情参考:https://www.cnblogs.com/clschao/articles/9613464.html) 所谓多道程序设计技术,就是指允许多个程序同时进入内存并运行 ...

  9. Python 进程之间共享数据

    最近遇到多进程共享数据的问题,到网上查了有几篇博客写的蛮好的,记录下来方便以后查看. 一.Python multiprocessing 跨进程对象共享  在mp库当中,跨进程对象共享有三种方式,第一种 ...

  10. python进程、多进程

    进程: 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础.在早期面向进程设计的计算机结构中,进程是程序的基本执行实体:在当 ...

随机推荐

  1. Greetings

    1,Common English Greetings Hey! Hey man! Hey girl! Hi. How's it going? How are you doing? What's up? ...

  2. C语言第十一次作业--函数嵌套调用

    一.实验作业 1.1 PTA题目:递归法对任意10个数据按降序排序 设计思路 定义整型循环变量i,最小值下标min,中间变量t 若n==1,直接返回 否则 min=10-n 最小值下标赋初值 for ...

  3. 【Python】 zabbixAPI的包装pyzabbix

    pyzabbix pyzabbix是zabbixAPI的第三方python包装.从网上莫名其妙地搞到了一份源码,看了一下之后发现实现方法还蛮巧妙的,感觉挺好的就记下来了.那些个源码本身其实也是一个个单 ...

  4. java.lnag.Throwable详细解读

    public  class Throwable  extends  Object  implemnts Serializable Throwable类是所有错误或异常的超类.只有当对象是此类(或其中之 ...

  5. 优化的四个方面,缓存,表结构,索引,SQL语句

    一,缓存 数据库属于 IO 密集型的应用程序,其主要职责就是数据的管理及存储工作.而我们知道,从内存中读取一个数据库的时间是微秒级别,而从一块普通硬盘上读取一个IO是在毫秒级别,二者相差3个数量级.所 ...

  6. Java编程配置思路详解

    Java编程配置思路详解 SpringBoot虽然提供了很多优秀的starter帮助我们快速开发,可实际生产环境的特殊性,我们依然需要对默认整合配置做自定义操作,提高程序的可控性,虽然你配的不一定比官 ...

  7. 【HTTP协议】---HTTP协议详解

    HTTP协议详解 一.HTTP简介 1.HTTP协议,即超文本传输协议(Hypertext transfer protocol).是一种详细规定了浏览器和万维网(WWW = World Wide We ...

  8. Java基础学习笔记二十五 MySQL

    MySQL 在dos中操作mysql 连接mysql命令: mysql -uroot -p密码 ,连接OK,会出现mysql> 对数据库的操作 创建一个库 create database 库名 ...

  9. windows下apache报os 10048错误

    在apache的bin目录下运行httpd -k install,报错os10048 (错误信息是跟443端口有关),网上的答案说的是改掉httpd.conf里的默认端口或者关闭占用端口的进程,默认端 ...

  10. alpha-咸鱼冲刺day2-紫仪

    总汇链接 一,合照 emmmmm.自然是没有的. 二,项目燃尽图 三,项目进展 今天并没有什么进展,弄了好久好像也只研究出怎么把JS的功能块插入进去.html的信息提交这些还不知道要怎么弄. 四,问题 ...