Linux 下的多进程编程初步 Linux 系统下实现多线程客户/服务器 Linux 下的多线程编程 1 Linux 下的多进程编程初步 1 引言 对于没有接触过 Unix/Linux 操作系统的人来说,fork 是最难理解的概念之一:它执行一次却返回两个值
fork 函数是 Unix 系统最杰出的成就 之一,它是七十年代 UNIX 早期的开发者经过长期在理论和实践上的艰苦探索后取得的成果,一方面,它使操作系统在进程管理上付出了最小的代价,另一方面, 又为程序员提供了一个简洁明了的多进程方法
与 DOS 和早期的 Windows 不同,Unix/Linux 系统是真正实现多任务操作的系统,可以说,不使用 多进程编程,就不能算是真正的 Linux 环境下编程
多线程程序设计的概念早在六十年代就被提出,但直到八十年代中期,Unix 系统中才引入多线程机制,如今,由于自身的许多优点,多线程编程已经得到了广泛的应用
下面,我们将介绍在 Linux 下编写多进程和多线程程序的一些初步知识
2 多进程编程 什么是一个进程
进程这个概念是针对系统而不是针对用户的,对用户来说,他面对的概念是程序
当用户敲入命令执行一个程序的时候,对系统而言,它将启动一 个进程
但和程序不同的是,在这个进程中,系统可能需要再启动一个或多个进程来完成独立的多个任务
多进程编程的主要内容包括进程控制和进程间通信,在了 解这些之前,我们先要简单知道进程的结构
1 Linux 下进程的结构 Linux 下一个进程在内存里有三部分的数据,就是"代码段"、"堆栈段"和"数据段"
其实学过汇编语言的人一定知道,一般的 CPU 都有上述三种段寄存器,以方便操作系统的运行
这三个部分也是构成一个完整的执行序列的必要的部分
"代码段",顾名思义,就是存放了程序代码的数据,假如机器中有数个进程运行相同的一个程序,那