- 3
- 0
- 约6.95千字
- 约 8页
- 2018-08-23 发布于江苏
- 举报
Windows核心编程之线程同步
HYPERLINK /shipfi/archive/2005/08/31/227228.html 《Windows核心编程》之五 --线程的同步
用户方式中线程的同步
?
1.线程间的互锁 有时线程的某些步骤需要以原子的方式来进行操作,尤其涉及到线程对内存,资源的访问的时候。Windows中,解决这个问题的办法之一就是对线程中某些操作进行互锁。那么这些操作就会不被中断而进行。
比如,使线程互锁以对某个变量值进行递增操作的函数:
LONG InterlockedExchangeAdd(PLONG plAddend, LONG Increment);
举一例:
long g_x=0;
DWORD WINAPI ThreadFun1(PVOID pvParam)
{
InterlockedExchangeAdd(g_x,1);}
DWORD WINAPI ThreadFun2(PVOID pvParam)
{
InterlockedExchangeAdd(g_x,2);}
?
通过这个小小的修改,g_x就可以以原子的方式来进行递增。
不必清楚地了解互锁函数是如何工作的。重要的是要知道,无论编译器怎样生成代码,无论计算机中安装了多少个C P U,它们都能保证以原子操作方式来修改一个值。还必须保证传递给这些函数的变量地址正确地对齐,否则这些函数就会运行失败
?
还
您可能关注的文档
- IMPS – Instant Messaging and Presence Using SIP.ppt
- Interesting or Interested 分词形容词.ppt
- Introduction à la programmation (Java).ppt
- ISO9001 经典讲解 hao.ppt
- Latin America and the Global CrisisJosé De.ppt
- 01-05-14水乳型氯丁胶沥青防水层.doc
- 060.热力学第一定律 能量守恒定律.doc
- 08低压灌溉A包合同工程鉴定书.doc
- 08年自贡市初中毕业暨升学考试英语卷.doc
- 10.杨氏之子教学设计.doc
原创力文档

文档评论(0)