Windows下的多线程理解 (1)

线程 线程 还是线程哦  呵呵  好好整理下, 对自己总是有好处的……其实自己还挺落伍的,说的这些不知道对多核适用不
 
理解线程的相关概念:
[1]应用程序:反正操作系统里面一大坨, 自己看下哦,我的理解是未调用的干脆都叫文件算了,
比如calc.exe(这个是什么,自己运行下就知道了);
[2]进程:应用程序加载到内存后,称之为进程,,就像做妖有了颗善良的心,叫它人妖一样;
[3]线程: 进程被CPU处理时,就产生了线程。
    一个进程可以定义程序的一个实例(Instance)。在Win32中,进程并不执行什么,它只是占据应用程序所使用的地址空间。
为了让进程完成一定的工作,进程必须至少占有一个线程,正是这个线程负责包含进程地址空间中的代码。实际上,一个进程可以
包含几个线程,它们可以同时执行进程地址空间中的代码。为了做到这一点,每个线程有自己的一组CPU寄存器和堆栈。每个进程中
至少有一个线程在执行其地址空间中的代码。如果没有线程执行进程地址空间中的代码,进程也就没有继续存在的理由,系统将自动
清除进程及其地址空间。
 
简单的理解就是:
    每个进程至少有拥有一个县城,这个线程称之为主线程,由这个主线程来创建更多的线程。
 
线程的作用
    让你的程序看起来好像在同时做很多事情。在运行一个多线程的程序时,从表面上看,这些线程似乎在同时运行。而实际情况并非如此,
为了运行所有的这些线程,操作系统为每个独立线程安排一些CPU时间。单CPU操作系统以轮转方式向线程提供时间片(Quantum),
每个线程在使用完时间片后交出控制,系统再将CPU时间片分配给下一个线程。由于每个时间片足够的短,这样就给人一种假象,
好像这些线程在同时运行。(应用举例:界面线程和工作者线程)
 
线程的创建:
    主线程创建线程,线程也可以创建线程。
 
线程的结束:
    主线程死翘翘了,它所创建的线程 以及线程所创建的线程都被强迫死翘翘。这是不安全的,必须要保证所有的线程都能够正常的执行到return,
安全返回。

哎,随便写点,下次认真的写了。

 
 
posted @ 2009-06-18 16:37  zhengzongzhao  阅读(355)  评论(1编辑  收藏  举报