相关概念

进程

可执行程序的运行态
可操作系统调度的基本单位
线程容器
本身包含指令、数据等资源

线程

进程中被执行的最小单元
cpu调度的基本单位
线程带有指令、数据等资源

常用进程管理命令

ps 进程列表快照

风格参数

unix风格参数:ps -ef
bsd风格参数:ps aux
gnu风格参数:ps --pid pidlist

相关使用

  1. ps -ef:获得所有进程列表

  2. ps aux:获得所有进程列表,并提供更多可用数据

  3. ps --pid 进程号1 进程号2 xxx 进程号n:显示指定进程的信息

  4. ps -o pid,ppid,psr,cmd,xxxx:指定输出

    使用-m表示打印出对应进程下的线程

    关于使用-o与标准输出参数的对应关系

      CODE   NORMAL   HEADER%C     pcpu     %CPU%G     group    GROUP%P     ppid     PPID%U     user     USER%a     args     COMMAND%c     comm     COMMAND%g     rgroup   RGROUP%n     nice     NI%p     pid      PID%r     pgid     PGID%t     etime    ELAPSED%u     ruser    RUSER%x     time     TIME%y     tty      TTY%z     vsz      VSZ


    5.进程信息字段说明

    UID:启动进程的用户
    PID:进程的进程号
    PPID:父进程进程号
    C、%CPU:cpu使用率
    STIME:进程启动时的系统时间
    TTY:进程启动时终端设备,若与终端无关,则显示? 若为pts/0等,则表示由网络连接主机进程。
    TIME:运行进程需要的累积CPU时间
    CMD:启动程序名称或命令
    %MEM:占用内存的百分比
    VSZ:该进程使用的虚拟內存量(KB)
    RSS:该进程占用的固定內存量(KB)(驻留中页的数量)
    STAT:进程的状态
    START:该进程被触发启动时间

    关于进程的状态如下:

    D:无法中断的休眠状态(通常 IO 的进程)
    R:正在运行可中在队列中可过行的
    S:处于休眠状态
    T:停止或被追踪
    W:进入内存交换 (从内核2.6开始无效)
    X:死掉的进程 (基本很少见)
    Z:僵尸进程
    <:优先级高的进程
    N:优先级较低的进程
    L:有些页被锁进内存
    s:进程的领导者(在它之下有子进程)
    l:多线程,克隆线程(使用 CLONE_THREAD, 类似 NPTL pthreads)
    +:位于后台的进程组

top 交互式进程观测

top命令经常用来监控linux的系统状况,实时显示系统中各进程的资源占用情况。

具体使用可参考其他博主的文章:https://blog.csdn.net/yjclsx/article/details/81508455

kill killall 结束进程

结束top进程前

结束top进程后

fg 进程切换到前台

python demo.py 2 3 进程已挂起

执行fg命令后,前台重新执行了该命令

bg 进程切换到后台

通过 jobs 命令可以看到当前后台被停止的作业是 python demo.py 2 3,其编号是1,则如果要在后台可以执行,则可以通过命令bg实现,格式为:bg jobs命令时的编号(比如 python demo.py 2 3 为 1,则为 bg 1)

ctrl z 挂起进程

将 python demo.py 2 3 进程挂起,挂起后,python demo.py 2 3 进程都是T(停止)状态

注意:只有在前台的进程才能被挂起,后台进程是不会被挂起的

demo.py内容

import multiprocessing
import os
import sys
import threading
from time import sleepdef thread_demo(index):while True:print(f"thread_demo {index} pid={os.getpid()} thread_name={threading.current_thread().name}")sleep(1)def process_demo(index):while True:print(f"process_demo {index} pid={os.getpid()} thread_name={threading.current_thread().name}")sleep(1)def multi_thread(count):for index in range(count):thread = threading.Thread(target=thread_demo, args=[index])thread.start()sleep(1)def multi_process(count):for index in range(count):process = multiprocessing.Process(target=process_demo, args=(index,))process.start()sleep(1)if __name__ == '__main__':process_count = int(sys.argv[1])thread_count = int(sys.argv[2])multi_process(process_count)multi_thread(thread_count)input()

Linux进程与线程相关推荐

  1. Linux进程与线程的区别 详细总结(面试经验总结)

    首先,简要了解一下进程和线程.对于操作系统而言,进程是核心之核心,整个现代操作系统的根本,就是以进程为单位在执行任务.系统的管理架构也是基于进程层面的.在按下电源键之后,计算机就开始了复杂的启动过程, ...

  2. Linux进程与线程的区别

    2019独角兽企业重金招聘Python工程师标准>>> Linux进程与线程的区别 cnyinlinux 本文较长,耐心阅读,必有收获! 进程与线程的区别,早已经成为了经典问题.自线 ...

  3. linux 进程和线程或线程和线程之间通过管道通信(pipe)

    linux 进程和线程或线程和线程之间通过管道通信(pipe) 转自:http://blog.csdn.net/robertkun/article/details/8095331 线程间通信: [cp ...

  4. (大集合)Linux进程和线程的基本编程、通讯和例程【杂记】

    Linux 进程 和 线程 的基本 编程.通讯 和 例程 注:[杂记]系列为日常网搜资料的堆砌而积累成之.如有错误恭谢指出.标识为"原创"其实不完全是,只是多引用再整理和加上自己的 ...

  5. 【Linux进程、线程、任务调度】三 CPU/IO消耗型进程 吞吐率/响应 SCHED_FIFO算法与SCHED_RR算法 SCHED_NORMAL算法和CFS算法 nice与renic chrt

    学习交流加(可免费帮忙下载CSDN资源): 个人微信: liu1126137994 学习交流资源分享qq群1(已满): 962535112 学习交流资源分享qq群2(已满): 780902027 学习 ...

  6. 一文搞定Linux进程和线程(详细图解)

    Linux 进程和线程 本篇文章我们就深入理解一下 Linux 内核来理解 Linux 的基本概念之进程和线程.系统调用是操作系统本身的接口,它对于创建进程和线程,内存分配,共享文件和 I/O 来说都 ...

  7. 吉林大学操作系统上机(实验一:Linux进程与线程通讯)

    前言 我希望找到这里的学弟学妹能基于我的内容完成的更好,这里的代码和思路应该是你们的下限!! 我分享这些笔记的初衷是因为我觉得csdn上与之相关的不少博客都收费,但是我当时做的时候,我觉得就那么一点东 ...

  8. 【Linux进程、线程、任务调度】二 fork/vfork与写时拷贝 线程的本质 托孤 进程睡眠和等待队列

    学习交流加(可免费帮忙下载CSDN资源): 个人微信: liu1126137994 学习交流资源分享qq群1(已满): 962535112 学习交流资源分享qq群2(已满): 780902027 学习 ...

  9. Linux -- 进程或线程独占CPU

    如果想让特定进程或线程独占某一或某些CPU,我们需要做三件事. 一,隔离CPU,避免其它线程run在被隔离的CPU上. 二,绑定所有的interrupts到非隔离的CPU上,避免被隔离的CPU收到in ...

  10. Linux进程和线程

    程序是一组指令及参数的集合,指令按照既定的逻辑控制计算机运行.进程则是运行着的程序,是操作系统执行的基本单位.线程则是为了节省资源而可以在同一个进程中共享资源的一个执行单位. 1. 程序和进程 C.C ...

最新文章

  1. P3项目全球模板狗血设置之一 --- 发货到成本中心需要输入Customer
  2. CUDA学习----sp, sm, thread, block, grid, warp概念
  3. 大爷与支付宝同名,曾想状告阿里巴巴侵权,现在过得怎么样
  4. BertEmbedding的各种用法
  5. kite:Python 代码自动补全神器
  6. Ubuntu下自定义调整CPU工作频率(用于省电或提高性能都好用)
  7. 消除代码中的 if-else/switch-case
  8. [CTSC2018]假面(概率DP)
  9. 常用功能错误不是问题,对待行为让人绝望
  10. python能做的java能做吗_java – Jython不能做什么Python?
  11. 【暂时完结】Prescan学习笔记
  12. 关于foobar2000中Convolver,大家觉得哪个Impulse效果最好?
  13. 【软考 系统架构设计师】软件工程⑥ 软件系统建模
  14. [人工智能-综述-10]:模型评估 - 常见的模型评估指标与方法大全、汇总
  15. linux运行360wifi,Linux(Ubuntu)下的无线网络卡上的小米和360wifi教程
  16. 一键清除系统垃圾文件的bat批处理命令
  17. T229473 D. 背单词的小智 (二分
  18. 趣图:gif PostgreSQL MySQL 从删库到跑路
  19. Android 9.0蓝牙音乐上一首、下一首、暂停和播放
  20. Acwing 1191. 家谱树 (topsort

热门文章

  1. nmon在linux应用
  2. OpenCV之识别银行卡号
  3. Deep Biaffine Attention for Dependency Parsing
  4. 利用茉莉机器人接口开发一个简单的安卓机器人app
  5. Unity 内置访问安卓权限
  6. 大数据项目之电商数仓、业务数据介绍、电商系统表结构
  7. SEGGER J-FLASH V7.82 下载链接
  8. Redis如何应对并发访问
  9. oracle.简单查询、排序、限定查询、单行函数
  10. 国家集训队论文集题目