注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

风雨夜归人

专业收集资料,个人爱好!

 
 
 

日志

 
 

多线程编程 (1)  

2011-07-16 14:59:43|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

概述

自从微软发布的Windows系列操作系统问世以来,其他操作系统的生存空间都大大的缩小,除了一些特殊的计算机(如某些服务器用Linux、Unix操作系统,苹果电脑自己的MAC系统)以外,绝大多数用户用的都是Windows操作系统,而Windows操作系统进入.net版本以后,其最核心的内容就是注册表、驱动、消息和多线程。

    本篇文章不涉及其他,主要是关于C++编程方面的多线程内容。

    在讲解多线程之前,我们需要了解进程和线程之间的关系。线程是进程内部的一个执行单元。系统创建好进程后,实际上就启动执行了该进程的主执行线程,主执行线程以函数地址形式,比如说在win32控制台程序中的main或win32应用程序中的WinMain函数,将程序的启动点提供给Windows系统。主执行线程终止了,进程也就随之终止。

  每一个进程至少有一个主执行线程,它无需由用户去主动创建,是由系统自动创建的。用户根据需要在应用程序中创建其它线程,多个线程并发地运行于同一个进程中。一个进程中的所有线程都在该进程的虚拟地址空间中,共同使用这些虚拟地址空间、全局变量和系统资源,所以线程间的通讯非常方便,多线程技术的应用也较为广泛。

    我们在windows操作系统自带的Windows任务管理器里看到的进程都是系统创建的,每一个进程都有一个对应的应用程序,也就是我们所说的可执行程序(.exe后缀的文件),打个比喻,一个进程就好像是一大片森林,而这片森林里的每棵树就好像是这个进程的线程,它们共同完成保持水土的功能。

    在windows操作系统中,一个主进程要完成某项功能,并不是从这个进程启动就一直在进行这个工作,CPU的工作原理其实就是时间片的轮转,真正完成这项功能的还是线程,一个线程启动后就会在CPU中工作一段时间,然后这个线程就会自动挂起,下一个线程会继续运行,然而这个新启动的线程也许就在执行别的程序要完成的功能,之后经过一段时间就会继续执行第一个线程的命令,所以CPU才会有频率和性能的不同。现在的CPU已经真正的进入到多核时代,可以有多个内核同时运行不同的线程,也即实现了线程真正的并发运行,可以说,CPU的物理内核越多,那么可以并发运行的线程也就越多,完成某项功能的时间也就越短,那么计算机整体性能的抬升也就在意料之中了。


  评论这张
 
阅读(557)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017