[TLPI] C30 Thread: Introduction
目录 Threads: Introduction Overview Background Details of the Pthreads API Thread Creation Thread Termination Thread IDs Joining with a Terminated Thread Detaching a Thread Thread Attributes Threads versus Processes Exercises Threads: Introduction Overview 同一个进程内的所有线程相互独立运行,执行着相同的程序,所有的线程共享相同的内存,包括初始化过的数据、未初始化的数据以及堆区(一个传统的UNIX进程是一特殊多线程进程,该进程只包括一个线程)。 在Figure 29-1中有一些简化。在实际中,每个线程的栈区可能会混入共享库以及共享内存区,这取决于线程创建的顺序、共享库被加载的顺序、共享内存区被使用的顺序。此外,每个线程的栈区分布也和Linux发行版有关。 同一个进程内的线程可以并发执行。在一个多处理器系统上,多个线程可以并行执行。如果某个线程因为IO而阻塞,其他的线程依然能够执行。 相对于进程,线程提供了很多优势。试着想想传统的UNIX编程里,通过创建多个进程来实现并发。其中一个例子,是网络服务器的设计,当接收到来自客户端的连接请求后