《Windows环境下的多线程编程原理与应用》的学习笔记

一、概念
1、程序:是指计算机指令的静态集合,无实质的意义。
2、进程:简单的讲,进程就是正在运行的程序,如VC++ 6.0、画图程序、记事本等,均属于一个进程。抽象的讲,进程是一些所有权的集合,一个进程拥有内存、CPU运行时间等一系列资源,为线程运行提供环境,其拥有自己的地址空间和动态分配的内存,以及文件、线程与其他模块等,它是操作系统的核心概念,其有一下三种状态:
a、运行(正在使用CPU);
b、就绪(当前能够运行,而由于系统正在运行其他进程需要等待);
c、阻塞(由于不能得到所需资源而不能运行,需要等待外部事件的发生);
3、线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源。
4、三者之间的所属关系:在一个应用程序中,可以包括一个或多个进程,每个进程由一个或多个线程组成。
在Windows系统中,系统的最小执行单位不是进程而是线程,因此,一个进程至少要有一个主线程,多个线程可以并发执行。
说明一点似乎不相关的,线程拥有独立的堆栈,因为函数的参数和局部变量等分配在堆栈中,堆栈中的特点是先进后出,如果几个线程共同拥有一块堆栈的话,堆栈的进出栈就会出现问题。


二、线程的通信与线程同步概述
1、线程间通信:线程间通信包括全局变量法、参数传递法、消息响应法以及用线程同步实现线程间通信。
2、线程同步:通过同步对象来实现线程的同步。
a、临界段:临界段对象通过提供所有线程必须共享的对象来控制线程。只有拥有临界段对象的线程才可以访问保护的资源(进行临界区操作),在另一个线程可以访问该资源之前,前一个线程必须释放临界段对象,以便另一个线程可以获取对象的访问权。用户应用程序可能会使用临界段对象来阻止两个线程同时访问共享的资源如文件等。
b、互斥量:互斥量的工作方式极类似于临界段,只是互斥量不
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值