Windows核心编程之线程同步.docVIP

  • 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,它们都能保证以原子操作方式来修改一个值。还必须保证传递给这些函数的变量地址正确地对齐,否则这些函数就会运行失败 ? 还

文档评论(0)

1亿VIP精品文档

相关文档