Linux(二)Linux的进程与线程

本文详细介绍了进程的基本概念,包括其作为可执行程序运行状态和操作系统调度单位;剖析了线程作为进程内的执行单元,以及进程和线程的生命周期管理。此外,文章列举了常用的进程管理命令如`ps`, `top`, `kill`等,并通过实例演示了进程命令的使用。

基本概念

进程

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

线程

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

进程的生命周期

在这里插入图片描述

常用进程管理命令

常用命令

ps : 进程列表快照
	ps -ef : 获取所有进程列表
	ps aux : 获取所有进程列表,并可提供更多可用数据
	ps -o pid,ppid,psr,thcount,tid,cmd -M : 自定义输出指标
top : 交互式进程观测
kill : 结束进程
fg : 进程切换到前台
bg : 进程切换到后台
ctrl+z : 挂起进程,并且让进城转到后台

进程切换到前后台:
前台:界面上进行交互的进程
后台:进程脱离了界面

执行一个命令就是创建一个进程。

进程命令练习

测试脚本demo.py

import multiprocessing
import os
import sys
import threading
from time import sleep


def 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()

运行文件python demo.py 3 4 &,其中&符号表示进程后台运行。
执行后可用ps命令查看进程。
进程的状态

D    uninterruptible sleep (usually IO)
R    running or runnable (on run queue)
S    interruptible sleep (waiting for an event to complete)
T    stopped by job control signal
t    stopped by debugger during the tracing
W    paging (not valid since the 2.6.xx kernel)
X    dead (should never be seen)
Z    defunct ("zombie") process, terminated but not reaped by its parent
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值