一、进程、线程的概念
进程:
理论:进程是程序的一次执行过程,是一个动态概念,是程序在执行过程中分配和管理资源的基本单位。
线程:
理论:线程是CPU调度和分派的基本单位。
二、进程和线程的关系:
进程可以比喻为----火车
线程可以比喻为----车厢
1、进程下可以运行多个线程,进程包含线程。
2、操作系统在运行的时候会为每个进程分配不同的内存空间,而对线程而言,除了CPU外,系统不会为线程分配内存,而是共享所属进程资源。
3、不同的进程之间互不影响,但一个进程下的一个线程被kill,将导致整个进程挂掉。
4、进程之间的切换开销大,每个进程都有独立的代码和数据空间。
5、一个进程下的线程共享代码和数据空间,线程切换开销小。
三、linux命令查看进程、线程
在Linux中,程序中创建的线程(也称为轻量级进程,LWP)会具有和程序的PID相同的“线程组ID”。然后,各个线程会获得其自身的线程ID(TID)。对于Linux内核调度器而言,线程不过是恰好共享特定资源的标准的进程而已。经典的命令行工具,如ps或top,都可以用来显示线程级别的信息,只是默认情况下它们显示进程级别的信息。
注:在linux系统中:PID:可代表进程和线程,SPID:代表线程,如下用top命令查询显示的是进程。
方法一:top命令的查询系统的进程:
top
查询具体的进程下面的线程运行情况:
top -H -p 39
方法二:使用ps查看具体线程,SPID:代表线程
ps -T -p 39