您当前的位置: 首页 >  windows

phymat.nico

暂无认证

  • 2浏览

    0关注

    1967博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Windows线程同步的方法

phymat.nico 发布时间:2018-01-23 00:17:01 ,浏览量:2

Summary:

对于多线程编程,一个很重要的问题就是解决由数据共享引起的数据竞争的问题,通过一定的线程同步的方法能避免数据竞争。在Win32多线程中,同步方法包括用户态同步方式:InterLock、CriticalSection、SRWLock和内核态同步方式:Event、Semaphore、Mutex等。

本文主要目的是收集这些同步的方法和涉及到API的含义和使用,可能不会涉及到更深入的比如何时使用何种方式更好以及为什么,更深入的问题,单独在以后积累并记录。

一、数据竞争的例子

在分析同步的方法之前,先给出要解决的数据竞争的例子:

[cpp] view plain copy
  1. #include "stdafx.h"  
  2. #include   
  3. #include   
  4. #include   
  5.   
  6. long g = 0;  
  7.   
  8. #define THREAD_COUNT        10          // 线程数  
  9. #define ACCESS_TIMES        10000000        // 访问共享变量的次数,增大其值,增加数据竞争发生的可能性  
  10. void __cdecl ThreadProc(void *para)  
  11. {  
  12.     printf("sub thread started\n");  
  13.     for (int i = 0;i 
关注
打赏
1659628745
查看更多评论
立即登录/注册

微信扫码登录

0.0493s