windows多线程相关
1.多线程同步的方法
a)entercirticalsection leaveciriticalsection
b)Mutex互斥对象 waitforsingleobject releasemutex使用方法和上面一个类似
c)createevent waitforsingleobject setevent使event对象变为受信状态 resetevent使event对象变未受信状态,通过这两种的设置来控制那些等街待这个event对象的线程的执行
d)semophore和以上几种单一入口控制不同,semophore是对多个并行入口进行控制,当这多个入口都被占用的时侯,semophore对象才变为阻滞状态,因此线程一旦处理完相关任务要记得调用releasesemophore来释放资源
e)waitformultiobject等待多个内核对象,只用这多个内核对象都变为受信状态,后续的代码才可以被执行。
f)interlockedincreament and interlockeddecreament这是一系列的函数,每次将一个变量值加1或减1.
2.关于线程局部存储
每个线程都有自己的数组,最大长度是1000
每次tlsalloc找到一个可用index然后返回,然后进程中的各个线程都可以以这个index参数来调用tlsgetvalue or tlssetvalue来读写相应index的数组元素,虽然线程都可以以相同的index作为参数,但这并不会冲突,因为它们都只操作本线程相关的数组
不通过tlsalloc提供的索引tlssetvalue一样可以设置各自数组中特定index的数组项的值,既然不通过TlsAlloc一样能通过索引来自行存取数据,那还需要tlsalloc来干嘛,这是因为有时我们可能需要多个线程保有同一类型的数据,但这数据是线程相关的,而且我们在调用tlsgetvalue时并不确定其它线程是否通过tlsalloc声明占有了该index,所以我们需要重新用tlsalloc来获取一个对所有线程可用的index,在用完后记得用tlsfree来释放该index,否则可能造成TLS_OUT_OF_INDEXES
windows多线程相关的更多相关文章
- windows多线程编程星球(一)
以前在学校的时候,多线程这一部分是属于那种充满好奇但是又感觉很难掌握的部分.原因嘛我觉得是这玩意儿和编程语言无关,主要和操作系统的有关,所以这部分内容主要出现在讲原理的操作系统书的某一章,看完原理是懂 ...
- Sqlite多线程相关整理
Sqlite多线程相关整理 Sqlite With MultiThreads 什么是线程安全? 当多个线程访问某个方法时,不管你通过怎样的调用方式.或者说这些线程如何交替地执行,我们在主程序中不需要去 ...
- Windows多线程多任务设计初步(转)
Windows多线程多任务设计初步 [前言:]当前流行的Windows操作系统,它能同时运行几个程序(独立运行的程序又称之为进程),对于同一个程序,它又可以分成若干个独立的执行流,我们称之为线程,线程 ...
- 重新想象 Windows 8 Store Apps (70) - 其它: 文件压缩和解压缩, 与 Windows 商店相关的操作, app 与 web, 几个 Core 的应用, 页面的生命周期和程序的生命周期
[源码下载] 重新想象 Windows 8 Store Apps (70) - 其它: 文件压缩和解压缩, 与 Windows 商店相关的操作, app 与 web, 几个 Core 的应用, 页面的 ...
- windows多线程没那么难
windows多线程没那么难 作者:vpoet mail:vpoet_sir@163.com 上一博文中我们引入了CreateThread()多线程编程一个简单的例子,事实上我说windows 多线程 ...
- Windows多线程
//简单的引出多线程是肿么回事儿....当点击下载的时候,下载内容还没结束也可以点击资源库,其实这就用了另一个线程,弹出“下载完成”对话框的时候,没有点击确定是不能点击主页面内容的,这就是用----- ...
- 总结windows多线程同步互斥
windows多线程同步互斥--总结 我的windows多线程系列文章: windows多线程--原子操作 windows多线程同步--事件 windows多线程同步--互斥量 windows多线程同 ...
- Windows多线程学习随笔
自学Windows多线程知识,例程如下: #include <iostream> #include <windows.h> #include <process.h> ...
- windows多线程同步互斥--总结
我的windows多线程系列文章: windows多线程--原子操作 windows多线程同步--事件 windows多线程同步--互斥量 windows多线程同步--临界区 windows多线程同步 ...
随机推荐
- c#中对rgb的使用
今天发现c#中没有和vb类似的函数RGB(), 后来发现可以通过Color类来实现 从R,G,B的值可以得到一个Color,如: Color c = Color.FromArgb(255,0,0); ...
- MAC air 安装redis-3.0.6
redis版本: p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 16.0px Menlo; color: #c33720; background-colo ...
- bootstrap笔记-栅格布局
1. .clearfix 这个类可以在栅格布局中起到一个不占空间的clear的作用,如下:可以尝试带.clearfix和不带它的区别 <div class="container-f ...
- 在centos中安装jenkins master测试环境
在centos中安装jenkins 1)安装目录 pwd (/home/AAA) 2)检查java是否安装 [AAA@Centos_AAA jenkins]$ java -version j ...
- 创建JOB
1.创建一张表g_test create table G_TEST ( ID NUMBER(12), C_DATE DATE ) 2.创建一个sequence create sequence G_SE ...
- Rotate Image [LeetCode]
You are given an n x n 2D matrix representing an image. Rotate the image by 90 degrees (clockwise). ...
- 如何有效使用Project(1)——编制进度计划、保存基准
1.前言: 软件产品的研发.升级.定制等,一般都是以项目的形式进行,此时项目进度计划以及资源使用情况就变成了项目经理关注的重点.如何让项目计划有效可控,及时暴露问题?如何查看资源的负荷情况,看资源分配 ...
- Android doc打开太慢
C:\Windows\System32\drivers\etc\HOSTS 127.0.0.1 fonts.googleapis.com 127.0.0.1 www.google.com 127.0. ...
- 转载---Java集合对象的深度复制与普通复制
原博文:http://blog.csdn.net/qq_29329775/article/details/49516247 最近在做算法作业时出现了错误,原因是没有弄清楚java集合的深度复制和浅度复 ...
- 介绍开源的.net通信框架NetworkComms框架之一 首字节验证
原文网址: http://www.cnblogs.com/csdev Networkcomms 是一款C# 语言编写的TCP/UDP通信框架 作者是英国人 以前是收费的 目前作者已经开源 开源地 ...