windows线程同步的几种方法

来源:互联网 发布:数据分析入门书籍推荐 编辑:程序博客网 时间:2024/05/21 10:56
线程同步技术, windows


   原子锁
       
  APi
    InterLockedIncrement(1个参数)
InterLockedDecrement(1个参数)
 
  
   临界区
     VOID 初始化一个临界区
   void initializeCriticalSection(
LPCRITTICAL_SECTION lpCriricalSection // 临界区变量
)
进入临界区
VOID EnterCriticalSection(
LPCRITICAL_SECTION lpCriricalSection // 临界区
)
离开临界区
VOID DeleteCriticalSection(
LPCRITICAL_SECTION lpCriricalSection // 删除临界区.
)
   互斥:
       当互斥锁不被枷锁时,有信号,当互斥锁上时,无信号.
        创建互斥
HANDLE CreateMutex(
 LPSECURITY_ATTRIBUTES lpMutexAttributes,
 // 安全属性
 BOOL bInitalOwner,  // 初始的拥有者,FALSE创建时没有线程拥有互斥.
      LPCTSTR lpName   // 命名  
等候互斥
 WaitFor....
3 释放互斥
BOOL ReleaseMutex(
 HANDLE hMutex  // handle tomutex
)
)
4. 关闭句柄.
5. 打开互斥锁
OpenMutex 通过名称返回互斥句柄

   事件
     
创建事件
 HANDLE CreateEvent( 
 LPSECURITY_ATTRIBUTES lpEventAttributes, // SD
      BOOL bManualReset,                       // true手动将信号转变为无信号
//  false,自动设置复位
      BOOL bInitialState,                      // false 初始状态无信号
      LPCTSTR lpName                           // object name
 );
等候时间
将事件设置成有信号状态
  BOOL SetEvent(hEvent)
将事件设置成无信号状态
        BOOL ResetEvent(hEvent);
     关闭事件
   CloseHandle();
   信号量
       
  HANDLE CreateSemaphore(
   LPSECURITY_ATTRIBUTES lpSemaphoreAttributes,
LONG lInitialCount,  // 初始化信号量数量3
LONG lMaximumCount,  // 信号量的最大值 ?? 10
LPCTSTR lpName     // 命名
  );
  创建成功返回信号量句柄
  等候信号量
  给信号量指定新值
  BOOL ReleaseSemaphore(  HANDLE hSemaphore,       // 信号量
  LONG lReleaseCount,      // count increment amount     // 指定新值.
  LPLONG lpPreviousCount   // previous count    // 可以为NULL
  );
     
   可等候定时器
等候函数:
   WaitForMultipleObjects - 等候多个
   
   DWORD WaitForMultipleObjects(
  DWORD nCount,             // 句柄数量
  CONST HANDLE *lpHandles,  // 句柄数组
  BOOL fWaitAll,            // true 等待所有句柄都有信号时返回,false 有一个有信号就返回
  DWORD dwMilliseconds      // 超时时间INFINITE 代表永远
  
  );
  返回值是有信号耳朵句柄在数组里的下标.
  
  
  
  
  
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 小孩听课注意力不集中怎么办 小孩子上课精神不集中怎么办 孩子说我不画了怎么办 幼儿园小朋友上课不专心怎么办 孩子写作业不专心怎么办 小孩做作业不专心怎么办 孩子上课精力不集中怎么办 四岁宝宝吃饭慢怎么办 5岁宝宝吃饭慢怎么办 小学一年级上课不专心怎么办 5岁儿童不专心怎么办 小孩子做作业不专心怎么办 孩子做作业不专心怎么办 小孩学了就忘怎么办 小孩学过就忘了怎么办 做事老是注意力不集中怎么办 做事无法专注注意力不集中怎么办 幼儿园孩子上课不认真听讲怎么办 孩子在课间打闹家长应该怎么办 孩子打闹家长额钱怎么办 我又打孩子了怎么办 打排卵针不排卵怎么办 总是控制不住打骂孩子怎么办 叛逆期的孩子打骂妈妈怎么办 孩子屁股打青了怎么办 父亲把孩子屁股打流血怎么办 孩子屁股长了湿疹怎么办 宝宝发脾气摔东西躺地上怎么办 生气拿棍子打了孩子怎么办 小宝宝被蚊虫咬了怎么办 小宝宝被蚊子咬了怎么办 衣架打小孩淤青怎么办 1岁宝宝有痰咳嗽怎么办 1岁宝宝咳嗽有痰怎么办 孩子爱动手打家长怎么办 不小心有了孩子该怎么办 2岁多宝宝干咳怎么办 2岁宝宝咳嗽无痰怎么办 打了孩子后悔了怎么办 12小孩脾气很犟怎么办 被学生气着了怎么办