37 windows_37_Thread_InterLock 线程-原子锁
windows_37_Thread_InterLock 线程-原子锁
// windows_37_Thread_InterLock.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include "windows.h"
long g_nValue1 = 0;
long g_nValue2 = 0;
DWORD WINAPI InterProc1( LPVOID pParam )
{
for (int nIndex = 0; nIndex < 10000000;nIndex++)
{
//普通的加加
g_nValue1++;
}
return 0;
}
DWORD WINAPI InterProc2( LPVOID pParam )
{
for (int nIndex = 0; nIndex < 100;nIndex++)
{
//原子锁加加
//g_nValue2++;
InterlockedIncrement( &g_nValue2 );
}
return 0;
}
void Create( )
{
DWORD nThreadID = 0;
HANDLE hThread[4] = { NULL };
hThread[0] = CreateThread( NULL, 0, InterProc1, NULL, 0, &nThreadID );
hThread[1] = CreateThread( NULL, 0, InterProc1, NULL, 0, &nThreadID );
hThread[2] = CreateThread( NULL, 0, InterProc2, NULL, 0, &nThreadID );
hThread[3] = CreateThread( NULL, 0, InterProc2, NULL, 0, &nThreadID );
WaitForMultipleObjects( 4, hThread, FALSE, INFINITE );
printf( "%ld\n", g_nValue1 );
printf( "%ld\n", g_nValue2 );
}
int _tmain(int argc, _TCHAR* argv[])
{
Create( );
return 0;
}
转载于:https://www.cnblogs.com/nfking/p/5573918.html
37 windows_37_Thread_InterLock 线程-原子锁相关推荐
- c#如何使用反射去创建一个委托_【自学C#】|| 笔记 37 创建线程
一.Thread:线程及与线程有关的类 在 C# 语言中线程(Thread)是包含在进程中的,它位于 System.Threading 命名空间中. 与线程有关的类同样也都在 System.T ...
- 面试突击37:线程安全问题的解决方案有哪些?
Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.csdn.net/cou ...
- Java基础学习总结(17)——线程
2019独角兽企业重金招聘Python工程师标准>>> 一.线程的基本概念 线程理解:线程是一个程序里面不同的执行路径 每一个分支都叫做一个线程,main()叫做主分支,也叫主线程. ...
- linux线程同步(5)-屏障
一.概述 barrier(屏障)与互斥量,读写锁,自旋锁不同,它不是用来保护临界区的.相反,它跟条 ...
- java-多线程5-线程组
线程组 1 package test; 2 3 /*线程组 4 * 默认情况下,所有线程都是属于主线程组main 5 * 6 * */ 7 8 public class Test01 { 9 publ ...
- python线程退出_python其中一个子线程,则退出全部线程,再退出进程
原博文 2016-04-14 16:04 − import threading, signalis_exit = Falsedef write_login(self): global is_exit ...
- 孤荷凌寒自学python第三十九天python 的线程锁Lock
孤荷凌寒自学python第三十九天python的线程锁Lock (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 当多个线程同时操作一个文件等需要同时操作某一对象的情况发生时,很有可能发生冲突, ...
- java 实体类包含list 怎么取值_2019 最新 500 道 Java 面试题
2015 年,因为工作岗位的变动,开始负责给集团招聘一些技术人员,出于对公司的负责,也为了更好的胜任技术经理的职位,在面试的这件事上,我做了大量的"功课",首先我研究了几乎所有大厂 ...
- Java 最常见的 100+ 面试题和答案:面试必备
发现网上很多Java面试题都没有答案,所以花了很长时间搜集整理出来了这套Java面试题大全,希望对大家有帮助哈~ 博主已将以下这些面试题整理成了一个Java面试手册,是PDF版的. 需要pdf版的可以 ...
最新文章
- 记录PCLVisualizer问题
- 谢文睿:西瓜书 + 南瓜书 吃瓜系列 2. 多元线性回归
- Annual Review:人与微生物组
- 【译】What is a UTXO, and how does it work for a blockchain ledger?
- 触摸传感器的电路图符号_光电传感器电路图以及应用和优点
- oracle提供的有用函数(待续)
- 迪美特TVZ8双核智能高清播放器 在电视上编程不是梦
- html-按钮和多选框
- Golang——文件创建和写入、OpenFile追加写入、Open读取文件、ReadBytes缓冲区读取、os.Args、flag
- Mariadb学习总结(十二):复合语句和流程控制
- SQL数据库实战之查找当前薪水详情以及部门编号dept_no
- [转] 理解 JavaScript 中的 Array.prototype.slice.apply(arguments)
- 数据--第37课 - 线索化二叉树
- 如何在qt中插入html,如何在QT中的文本文件中插入文本?
- 深度学习系列讲座:谷歌翻译核心技术 Seq2Seq
- mac 思科 链路聚合_Cisco交换机 链路聚合
- 凯恩帝绝对坐标清零_凯恩帝 K90T i 数控车床系统使用手册分享
- 自相关函数 互相关函数 平稳随机过程
- idea 运行vue项目
- 席位、交易单元、交易网关是什么
热门文章
- Cheat—— 给Linux初学者和管理员一个终极命令行备忘单
- compass reset和layout [Sass和compass学习笔记]
- java 循环时间调用 程序(转)
- .NET简谈脚本引擎系列(一:认识脚本引擎)
- CISCO 3550交换机配置DHCP三步骤
- [翻译]通过调用多个动作创建ASP.NET MVC视图
- 关于.h .cpp和inline的讨论
- BeanShell中this类型引用的特殊成员
- 064文件方式实现完整的英文词频统计实例
- AutoCAD WS API发布【转】