在现代UNIX实现中,每个进程都可执行多个线程。可将线程想象为共享同一虚拟内存及一些其他属性的进程。每个线程都会执行相同的程序代码,共享同一数据区域和堆。可是,每个线程都拥有属于自己的栈,用来装载本地变量和函数调用链接信息。


        线程之间可通过共享的全局变量进行通信。借助于线程API所提供的条件变量和互斥机制,进程所属的线程之间得以相互通信并同步行为---尤其是对共享变量的使用方面。


        线程的主要优点在于协同线程之间的数据共享(通过全局变量)更为容易,而且就某些算法而论,以多线程来实现比以多进程来实现更加自然。再者,显而易见,多线程应用能多多处理器硬件的并行处理中获益匪浅。