,,C++使用CriticalSection实现线程同步实例

,,C++使用CriticalSection实现线程同步实例

这篇文章主要介绍了C使用关键部分实现线程同步实例,是使用关键部分对前文实例的扩展,具有一定的参考借鉴价值,需要的朋友可以参考下

本文实例讲述了C使用关键部分实现线程同步的方法,在前文C线程同步实例分析的基础上增加了四行代码,使用了四个函数:

EnterCriticalSection:DeleteCriticalSection:EnterCriticalSection:LeaveCriticalSection此时,打印出来的数字就相等了。

具体代码如下:

#include 'stdafx.h '

#包含Windows.h

双字g _ cnt1

双字g _ cnt2

BOOL g _ bContinue=TRUE

临界_截面cs;

DWORD WINAPI线程进程(_ _在LPVOID LP参数中)

{

*输入关键部分;

while(g_bContinue)

{

g _ cnt1

g _ cnt2

}

离开临界区(cs);

返回0;

}

int _tmain(int argc,_TCHAR* argv[])

{

处理hThread[2];

g _ cn t1=g _ cn T2=0;

*初始化临界区;

hThread[0]=:CreateThread(NULL,0,ThreadProc,NULL,0,NULL);

hThread[1]=:CreateThread(NULL,0,ThreadProc,NULL,0,NULL);

睡眠(1000);

g _ bContinue=FALSE

WaitForMultipleObjects(2,hThread,TRUE,INFINITE);

printf('g_cnt1=%d\n ',g _ cn t1);

printf('g_cnt2=%d\n ',g _ CNT 2);

*删除关键部分;

*关闭句柄(hThread[0]);

*关闭句柄(hThread[1]);

返回0;

}

希望本文所述对大家的C程序设计有所帮助。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • vs2015打包安装程序,vs2015程序打包,VS2022实现VC++打包生成安装文件图文详细历程
  • vc++6.0的快捷键,vc 快捷键
  • vc++6.0的快捷键,vc 快捷键,VC6.0常用快捷键大全
  • 绘制圆角矩形的方法,c++ 画矩形,C#画圆角矩形的方法
  • 懒汉式和饿汉式代码,单列模式懒汉和饿汉,C++单例模式的懒汉模式和饿汉模式详解
  • 好用的C++编译器,c++编译软件哪个好
  • semaphore c#,c++ semaphore
  • semaphore c#,c++ semaphore,C++中Semaphore内核对象用法实例
  • dev-c++使用教程,dev c++安装教程
  • dev-c++使用教程,dev c++安装教程,Dev C++ 安装及使用方法(图文教程)
  • C里面指针常量和常量指针的区别,c++指针常量和常量指针
  • C里面指针常量和常量指针的区别,c++指针常量和常量指针,简单总结C++中指针常量与常量指针的区别
  • com组件初始化失败,c#开发com组件,C++中COM组件初始化方法实例分析
  • c++静态成员变量使用,c++静态成员函数和静态成员变量
  • c++静态成员变量使用,c++静态成员函数和静态成员变量,详解c++ 静态成员变量
  • 留言与评论(共有 条评论)
       
    验证码: