设为首页 加入收藏

TOP

9.2.1 线程的概念
2013-10-07 00:13:53 来源: 作者: 【 】 浏览:64
Tags:9.2.1 线程 概念

9.2  线程的操作技巧

Windows是一种多任务的操作系统,在Windows的一个进程内包含一个或多个线程。在32位Windows环境下的Win32 API提供了多线程应用程序开发所需要的接口函数,而利用VC++(www.cppentry.com)中提供的标准C库也可以开发多线程应用程序,相应的MFC类库封装了多线程编程(www.cppentry.com)的类,用户在开发时可根据应用程序的需要和特点选择相应的工具。为了使大家能全面地了解Windows多线程编程(www.cppentry.com)技术,本文将重点介绍在Win32 API和MFC两种方式下如何编制多线程程序。

多线程编程(www.cppentry.com)在Win32方式下和在MFC类库支持下的原理是一致的,进程的主线程在任何需要的时候都可以创建新的线程。当线程执行完后,自动终止线程;当进程结束后,所有的线程都终止。所有活动的线程共享进程的资源,因此,在编程(www.cppentry.com)时需要考虑在多个线程访问同一资源时产生冲突的问题。当一个线程正在访问某进程对象,而另一个线程要改变该对象时,就可能会产生错误的结果,编程(www.cppentry.com)时要解决这个冲突。

9.2.1  线程的概念

理解线程是非常关键的,因为每个进程至少需要一个线程。本节将更加详细地介绍线程的知识,尤其是要讲述进程与线程之间存在的差别,它们各自具有什么作用。还要介绍系统如何使用线程内核对象来管理线程,与进程内核对象一样,线程内核对象也拥有属性,我们将要观察许多用于查询和修改这些属性的函数。此外还要介绍可以在进程中创建和生成更多的线程时所用的函数。

上一节介绍的进程是由两个部分构成的,一个是进程内核对象,另一个是地址空间。同样,线程也是由两个部分组成的:
 
线程的内核对象,操作系统用它来对线程实施管理。内核对象也是系统用来存放线程统计信息的地方。
 
线程堆栈,它用于维护线程在执行代码时需要的所有函数参数和局部变量。

上一节中讲过,进程是不活泼的。进程从来不执行任何东西,它只是线程的容器。线程总是在某个进程环境中创建的,而且它的整个生命期都在该进程中。这意味着线程在它的进程地址空间中执行代码,并且在进程的地址空间中对数据进行操作。因此,如果在单进程环境中,有两个或多个线程正在运行,那么这两个线程将共享单个地址空间。这些线程能够执行相同的代码,对相同的数据进行操作。这些线程还能共享内核对象句柄,因为句柄表依赖于每个进程而不是每个线程。

【责任编辑:夏书 TEL:(010)68476606】

回书目   上一节   下一节

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇9.1.3 获取系统进程的技巧 下一篇9.1.2 创建/终止进程

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: