多线程入门书籍
本人正在写一本多线程入门书籍,作用是引导初学者入门,如果你有什么问题请给我来信,我将分几次把他贴完.
第一 章 多线程简介
在操作系统中一个可执行文件叫做程序.当这个文件在系统中运行时把它叫做进程,也就是静止和运行的关系,好比一辆火车停止的时候叫做火车,而在行驶的时候叫做列车一样的意思.这些进程之间正常情况下互相独立,互不影响其它进程的运行.它们都是在自己独立的内存空间运行.而一个进程中又包括有若干个线程(至少应该有一个线程),线程之间也相互独立运行.
图一:进程线程之间的关系
当一个进程中有多个线程,这些线程之间也并发运行.就好比有多个程序在运行一样.可以各做各的事,而不需要等到一件事情做完了再做另外一件事.比如Microsoft Word就是多线程序,它可以一边用打印机打印文档,同时还能继续输入编辑文档.这就是两个线程,一个线程做打印工作,一个线程做输入编辑工作.如果Word不是多线程的话.那么只有等到打印完之后才能继续输入编辑文档.
现在的软件为了适应用户的快速响应能力.基本上都采用了多线程技术.因此掌握和使用多线程技术也是一个软件工作者必需的能力.
下面给出进程的概念
进程:通常定义为程序的一个实例。在Win32中, 进程占据4GB的地址空间。 Windows通过虚拟内存的方式来担供。在这4GB的地址空间中包含有应用程序EXE文件的 代码和数据。EXE需要的任意DLL也将它们的代码和数据装入到进程的地址空间。除了地址空间,进程还占有某些资源,比如文件、动态内存分配和线程。当进程终止时,在它生命期中创建的各种资源将被清除。