Linux 进程信号与 POSIX 线程编程指南
1. 进程信号基础
在 Linux 系统中,进程可以接收各种信号以控制其行为。某些信号默认会使进程暂停,以下是一些常见信号及其描述:
| 信号名称 | 描述 |
| ---- | ---- |
| SIGCONT | 若进程已停止,则继续执行;若进程未停止,则忽略此信号 |
| SIGCHLD | 子进程停止或退出时发出 |
| SIGSTOP | 停止执行,不能被捕获或忽略 |
| SIGTSTP | 终端停止信号,通常通过键入 Ctrl + Z 发出 |
| SIGTTIN, SIGTTOU | 用于 shell 指示后台作业因需要从终端读取或产生输出而停止 |
| SIGFPE | 由浮点算术异常产生 |
| SIGILL | 处理器执行了非法指令,通常由损坏的程序或无效的共享内存模块导致 |
| SIGQUIT | 通常通过在终端键入 Ctrl + \ 或配置的退出字符发出 |
| SIGSEGV | 段错误,通常由在非法内存位置读写(如超出数组边界或解引用无效指针)引起 |
2. 线程概述
2.1 线程的定义
线程是指在单个程序中多个执行流,更精确地说,线程是进程内的一个控制序列。所有程序至少有一个执行线程,在 Linux 系统中,虽然可以同时运行多个进程,但此前我们看到的大多数进程都只有一个执行线程。
2.2 线程与 fork 系统调用的区别
创建新线程与使用 fork 系统调用有明显区别:
- fork 系统调
超级会员免费看
订阅专栏 解锁全文
669

被折叠的 条评论
为什么被折叠?



