线程入门指南
1. 线程简介
线程在现代编程中扮演着至关重要的角色,它能让程序实现并发处理,提升程序的性能和响应速度。在深入探讨线程之前,有必要先了解不同系统对相关功能的支持情况。不同的 UNIX 系统对 getrusage 结构体成员的支持有所不同:
| 系统 | 支持的成员 |
| ---- | ---- |
| [SUS2002] | 前两个成员 |
| 较新的 BSD 系统(包括 FreeBSD) | 全部成员 |
| Solaris 8(在 Intel 上) | 标准成员 |
| Linux 2.4 | 标准成员 + ru_minflt, ru_majflt, ru_nswap |
要了解这些成员的具体含义,可以查看系统的 getrusage 手册页。如果想深入了解,建议在基于 BSD 的系统上进行操作。
线程的引入为程序带来了新的执行模式。在之前的示例中,通过 fork 创建的进程只有一个控制流,也就是一个线程。程序按顺序依次执行指令,栈、全局数据和系统资源会被各种指令修改,其中一些指令可能会执行系统调用。而借助 UNIX 的 POSIX 线程功能,一个进程可以拥有多个线程。每个线程都有自己的控制流(包括指令计数器和 CPU 时钟)以及自己的栈,不过进程的其他部分,如全局数据、打开的文件或当前目录等资源是共享的。
2. 线程创建
下面的代码展示了如何创建线程:
static long x = 0;
stat
超级会员免费看
订阅专栏 解锁全文
1万+

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



