linux操作系统理解-线程与进程

结合自己的项目(一个SDK代表一个进程,在SDK中存在着多个线程,比如中断处理、NPM CLI采样线程等等)

1.进程

linux用进程调度器来觉得将时间片分配给哪一个进程

进程的优先级可以通过nice值区分:nice/renice命令可以修改nice值(值越小,优先级越高)

2.父进程中调用wait/waitpid函数等待子进程的结束

子进程结束时,与父进程的联系还在,知道父进程终止或者调用wait才结束;所以,如果父进程在子进程前先终止,子进程会变为僵尸进程(需要避免僵尸进程的出现)

3.信号(用于进程之间发送消息的简单方式)

信号是由于某些错误事件而产生的。信号对应的操作有:生产、捕获、响应、忽略

如果进程收到一个信号,但是事先没有安排捕捉动作,进程会立刻终止(shell可以Ctrl+C或者kill命令的原理就是这个)


4.linux线程

4.1线程查看

在ps命令中,“-T”选项可以开启线程查看。下面的命令列出了由进程号为的进程创建的所有线程

linux操作系统理解-线程与进程_第1张图片

“SID”栏表示线程ID,而“CMD”栏则显示了线程名称

4.2线程函数

pthread_create用来创建一个线程

pthread_join用来等待一个线程的结束

pthread_exit终止调用它的线程并返回一个指向某个对象的指针

设置线程属性

pthread_attr_init和pthread_attr_destory

取消一个线程:pthread_cancel

4.3线程同步

信号量sem 英[ˈseməfɔ:(r)]

互斥量mutex 英[m'ju:teks]















你可能感兴趣的:(linux)