《win32多线程程序设计》学习笔记一

一、win32基础

 1、进程

  1)、从win32角度来看,进程含有内存和资源。被进程拥有的资源,理论上可高达2GB。资源包括核心对象,UESR资源,GDI资源。

  2)、进程本身并不能够执行,它只是提供一个安置内存和线程的地方。


2、内存

 1)、每一个进程都关系到内存。

 2)、内存可以大致分为三种类型:

   I、Code【Code是程序的可执行部分,一定是只读性质】

   II、Data【Data是你程序中的所有变量(不包括函数中的局部变量),可以区分为全局变量和静态变量两种。当然线程也可以使用malloc()或new动态配置内存】

   III、Stack【Stack是你调用函数所用的栈堆空间,其中有局部变量。每个线程产生式配有一个栈堆。如果不需要,操作系统会将它动态扩充】


3、线程

 1)、定义一个线程,需要的数据并不多,线程在“任何时刻下的状态”被定义在进程的某块内存中,以及·CPU寄存器上。其他的重要数据,储存在进程中的那些可被其他线程共享的内存内。


4、context switching

 1)、要切换不同的线程,操作系统应该先切换该线程隶属之进程的内存,然后恢复该线程放在CONTEXT结构中的寄存器值的过程。


5、Race Conditions(竞争条件)

 1)、context switching是抢先式多任务的心脏。在一个合作性多任务系统中,操作系统必须得到程序的允许才能够改变线程。但是在抢先式多任务系统中,控制权被强制转移,也因此两个线程之间的执行顺序变得不可预期,这个不可预期便造成了所谓的Race Conditions。


6、Atomic Operations(原子操作)

 1)‘一个操作能够不受中断的完成,称之为原子操作。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值