1 进程

进程:程序的一次(从开始到结束)执行过程,属于一个动态过程。是系统进行资源分配和调度的基本单位。

程序:指的是一个文件,磁盘中可执行的代码。属于一个静态文件

注:进程运行时需要把程序加载如内存,进程有一定的生命周期,进程的创建由操作系统控制,进程占有系统的资源

cpu时间片 : 哪个进程占用cpu,就称之为它在cpu的时间片上

多进程多线程编程是计算机多任务编程的方法,可以使用多核CPU,

每个进程都单独占有4G的地址空间,这里的空间指的是虚拟存储空间,垃圾回收是发生在虚拟内存中。

依据运行瓶颈限制因素,可以将其运行分为:

IO密集型 : IO操作远远大于计算操作,因为CPU效能要远远高于IO的读写操作,所以这类程序一般cpu都处于等待IO运行的状态。

cpu密集型:程序中运算较多,IO较少,cpu占用率高。

进程控制块 (PCB) : 在内存中开辟的存放进程信息的空间

ps -aux :查看进程相关信息

每一进程都有一个标识PID,USER 中 root 表示用户自自启的,另外还有 tarena 等 USER。

注意:每个进程单独占有4G地址空间(虚拟内存地址,非实际物理存储空间)

2 进程的状态

一般而言,进程有三种状态(三态):就绪状态,运行状态,等待/阻塞状态。

就绪 : 进程具备运行条件,等待系统分配资源,也即尚未分配CPU资源;

执行 : 进程占有cpu,并开始运行

等待 : 又称为阻塞态或者睡眠态,进程等待某种条件,或等待某件事件的完成(进程因等待某件事发生而暂时不能运行);

在有些资料中将其划分为5态

新建 : 创建一个进程, 直接表现为创建程序,或者创建子进程

终止 : 程序执行结束,完成善后,或处于僵尸状态

3 进程状态标识

D : 等待态(不可中断等待,不可被外界中断)
S : 等待态(睡眠等待态)
T : 等待态
R : 运行态,就绪态
Z : 僵尸态进程
N : 低优先级的进程
< : 高优先级
+ : 前台进程

这部分标识内容在进程相关信息中的STAT列表一栏就可以看到。

4 Linux下进程相关命令

ps -aux 显示进程信息

ps -ef

UID用户ID  PID进程ID(注:每一个进程均由父进程创建的)  PPID父进程 C CPU占有率 STIME开始时间 TTY 开始此进程的TTY(终端设备)TIME 此进程运行的总时间 CMD命令名

pstree 查看进程树结构

top 检测系统中的进程

动态监测显示过程,可以通过用户按键来不断刷新当前状态,如果在前台执行该命令,它将独占前台,直到用户终止该程序为止。

确切地说,top命令提供了实时的对系统处理器的状态监视,它将显示系统中CPU最“敏感”的任务列表,该命令可以按CPU使用,内存使用和执行时间对任务进行排序,而且该命令的很多特性都可以通过交互命令或个人定制文件中进行设定。输入q时退出进程

进程优先级:在该命令中我们可以看到“NI”字段,其实也就是Linux进程优先级,其范围一般为-20~19,数字越小,优先级越高,默认优先级为0,-20为最高级别的优先级级别。

当越小的优先级时,则需要管理员运行,当运行优先级权限不够时(-20~0)时,则需要添加sudo前缀,如果没有该字段程序依旧可以运行,只是该程序以默认优先级0进行运行了。

关于top命令可参考Linux Top 命令解析 比较详细

在linux中,nice命令用于改变进程的优先级(注意级别前面的-)

  ./test.py  表示以9的优先级运行test.py程序
nice  --9  ./test.py  表示以-9的优先级运行test.py程序

也可以将某一个PID进程NI值(优先级值)修改

renice  n  pid  将pid的进程 优先级修改为 n

杀死一个进程

kill  -sig   pid   给pid的进程发送一个sig信号

上面的命令均可以在打开top时实时查看。

可以参考Linux nice命令简要介绍

  #将PID为7767的进程的优先级修改为-, 

  #杀死一个进程,实际上,是向进程发送一个信号, ) SIGKILL

kill -sig(信号) pid(进程)

查看进程 kill -l

将程序变成后台运行时./while.py &,变为后台运行时,无论前台做什么,它依旧正常运行

结束一个进程ctrl+z是将程序变成了T  ,实际上并没有将程序杀死,其依旧占有系统资源

python学习笔记——多进程一 基础概念的更多相关文章

  1. Python 学习笔记 多进程 multiprocessing--转载

    本文链接地址 http://quqiuzhu.com/2016/python-multiprocessing/ Python 解释器有一个全局解释器锁(PIL),导致每个 Python 进程中最多同时 ...

  2. python 学习笔记 多进程

    要让python程序实现多进程,我们先了解操作系统的相关知识 Unix/Linux操作系统提供了一个fork()系统调用,他非常特殊,普通的函数调用,调用一次,返回一次,但是fork调用一次, 返回两 ...

  3. Python学习笔记一(基础信息)

    目录 输入输出 数据类型和变量 整数 浮点数 字符串 布尔值 空值 变量 常量 小结 欢迎关注我的博客我在马路边 说明:此笔记不是从零开始,在学习的过程中感觉需要记录一些比较重要和需要重复浏览的信息, ...

  4. Spring学习笔记一:基础概念

    转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6774310.html    一:Spring是什么 Spring的主要作用是作为对象的容器. 传统编程中,我们 ...

  5. python学习笔记——多进程中的锁Lock

    1 进程锁 python编程中,引入了对象互斥锁的概念,来保证共享数据操作的完整性. 每个对象都对应于一个可称为“互斥锁”的标记,这个标记用来保证在任一时刻,只能有一线程访问对象. 在python中我 ...

  6. python学习笔记——多进程二 进程的退出

    1 进程的退出函数的基础语法 1.1 进程的退出函数 进程的退出含有有os._exit([status])和sys.exit([status])两种,从数据包来看,该退出模块仅在linux或者unix ...

  7. 吴裕雄--python学习笔记:爬虫基础

    一.什么是爬虫 爬虫:一段自动抓取互联网信息的程序,从互联网上抓取对于我们有价值的信息. 二.Python爬虫架构 Python 爬虫架构主要由五个部分组成,分别是调度器.URL管理器.网页下载器.网 ...

  8. python学习笔记-多进程

    multiprocessing from multiprocessing import Process import time def f(name): time.sleep(2) print('he ...

  9. Python学习笔记1(基础语法)

    1.Python的文件类型: 源代码:扩展名以py结尾.python写的程序不需要编译成二进制代码,可以直接运行.pyw是Windows下开发图形界面的源文件. 字节代码:扩展名以pyc结尾,是编译过 ...

随机推荐

  1. 我所遭遇过的中间件--VTK

    我所遭遇过的中间件--VTK Vtk是我接触的第一款软件开发包,它引导我对图形学的入门.我是先学的VTK,后学的OpenGL和D3D.VTK是专为图形学开发,特点是接口清晰,好上手,又含有大量的图像处 ...

  2. [1] 平面(Plane)图形的生成算法

    顶点数据的生成 bool YfBuildPlaneVertices ( Yreal width, Yreal length, Yreal height, Yuint slices, Yuint sta ...

  3. C# 实现PNG文件的背景透明显示,解决动态显示闪烁问题 【转】

    http://blog.sina.com.cn/s/blog_402c071e0102x4rl.html    以下内容,对于想要使用C#实现PNG图片背景透明显示,同时动态显示时无闪烁问题的人来说, ...

  4. iOS开发-照片选择

    本来想做个注册登录的表单的,想想还是先做个简单的头像选择,一般情况下不管是内部管理系统还是面向公众的互联网公司,注册登录是免不了的,用户头像上传是免不了的,尤其是企业用户,上传了自己的图片才感觉自己买 ...

  5. Android NFC近场通信03----读写MifareClassic卡

                                           Android NFC近场通信02----读写MifareClassic卡 一.MifareClassic卡 相关 一般来 ...

  6. Android6.0执行时权限解析,RxPermissions的使用,自己封装一套权限框架

    Android6.0执行时权限解析,RxPermissions的使用.自己封装一套权限框架 在Android6.0中,新添加了一个执行时的权限,我相信非常多人都已经知道了.预计也知道怎么用了,这篇博客 ...

  7. win7取消任务栏预览并显示文件名

    开始--运行--regedit--回车,然后注册表就打开了,之后开始找到如下的位置,新增2个项 HKEY_CURRENT_USER\Software\Microsoft\Windows\Current ...

  8. [Node.js]29. Level 6: Socket.io: Setting up Socket.io server-side & Client socket.io setup

    Below we've already created an express server, but we want to start building a real-time Q&A mod ...

  9. Java 强引用、 软引用、 弱引用、虚引用

     1.对象的强.软.弱和虚引用 在JDK 1.2曾经的版本号中.若一个对象不被不论什么变量引用,那么程序就无法再使用这个对象. 也就是说,仅仅有对象处于可触及(reachable)状态.程序才干使 ...

  10. NYOJ 113 字符串替换(C++STL解法)

    字符串替换 时间限制:3000 ms  |            内存限制:65535 KB 难度:2 描写叙述 编写一个程序实现将字符串中的全部"you"替换成"we& ...