![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
多线程技术
大写的A
这个作者很懒,什么都没留下…
展开
-
线程的局部存储tls (thread local storage)
线程局部存储tls(thread local storage)线程的局部存储就是让一个全局的变量或者静态变量在每一个线程都有自己的立足之地.动态TLS首先调用API函数,获取当前进程可用的TLS索引,成功获取之后,我们可以通过Tls索引来进行数据的存取,线程局部存储有动态Tls,也有静态的Tls,内部的实现原理其实是一样的.静态的Tls使用比较方便只是声明时使用 _declsp原创 2013-10-15 16:36:45 · 2330 阅读 · 0 评论 -
使用信号量 进行windows线程同步 (Semaphore)
信号量类似于事件,采用通知的方式是两个线程彼此同步,信号量是一个整数,信号量是通过减的方式来操作的,每使用WaitForSingleObjecst等候一次,信号量减一,等到信号量为0时,线程阻塞.ReleaseSemaphore负责释放信号量,信号量的操作就是加减操作,通过判断是否够减来决定是否阻塞.下边是用到的函数:HANDLE CreateSemaphore( //创建信号量 L原创 2013-09-18 15:09:47 · 3829 阅读 · 0 评论 -
使用互斥量(Mutex)进行windows 线程同步 跨进程线程同步
// Mutex.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include HANDLE g_hMutex=NULL;//线程函数DWORD WINAPI ThreadFun1(LPVOID);DWORD WINAPI ThreadFun2(LPVOID);DWORD WINAPI ThreadFun3(LPVOID);int原创 2013-09-18 13:44:09 · 4664 阅读 · 0 评论 -
使用可等候定时器进行windows 线程同步 waitabletimer
使用可等候定时器进行线程同步,可等候定时器进行线程同步的原理定时触发,或间隔触发的方式. 在指定间隔的时间通知另一个线程,从而实现同步,精度高,约为100纳秒.可等候定时器属于内核对象.使用它可以跨进程进行同步.具体实现.1,函数说明HANDLE CreateWaitableTimer( LPSECURITY_ATTRIBUTES lpTimerAttributes, //原创 2013-09-17 18:04:44 · 1523 阅读 · 0 评论 -
windows下线程同步方式(事件)
事件:事件可以实现线程之间的同步,如线程A创建事件,线程B等候该事件,,事件的等候遵循谁先等候,谁先获取执行权,事件初始状态可以设置为有信号的,当线程B等到该信号,立马可以获取到执行权,执行完自己要执行的代码块之后,重置事件为无信号状态,此时线程A中又将该事件设置为有信号状态,线程B发现该事件有信号,又开始执行,这样可以达到一个线程控制另外一个线程,达到线程的同步目的;事件是一个内核对象,原创 2012-07-22 02:37:53 · 963 阅读 · 0 评论 -
windows下线程同步方式(原子锁)
一,原子锁当多个线程同时对同一资源进行操作时,由于线程间资源的抢占,会导致操作的结果丢失或者不是我们预期的结果;比如线程A对一个变量进行var++操作,线程B也执行var++操作,当线程A执行var++时,如果线程切换时间恰好是线程A将结果存在var变量之前,那么线程B继续执行var++;此时假设var值已经被线程B更新,这时轮流到线程A执行,线程A会将接着上次停止的点继续向下执行,这时B原创 2012-07-22 01:39:14 · 2373 阅读 · 0 评论 -
Windows进程的使用
一.Windows是一个多任务的操作系统,进程是操作系统进行管理的基本单元,进程本身只是一个容器,里边包含程序的可执行代码,数据,资源等信息;进程有自己的ID标识,和相应的安全属性,每个进程都有自己的独立的地址空间,其他进程是无法访问的,每一个创建好的进程至少包含一个线程.也就是这个进程的主线程.在Windows上创建进程的几种方式:WinExec - 早期16位 函数原型UINT W原创 2012-07-19 11:27:22 · 1390 阅读 · 0 评论 -
windows下线程同步的方式(临界区)
临界区:临界区是为了确保同一个代码片段在同一时间只能被一个线程访问,与原子锁不同的是临界区是多条指令的锁定,而原子锁仅仅对单条操作指令有效;临界区和原子锁只能控制同一个进程中线程的同步;// CriticalSection.cpp : Defines the entry point for the console application.//#include "stdafx.h原创 2012-07-22 02:41:01 · 1965 阅读 · 0 评论 -
symbol lookup error,undefined symbol: pthread_create
大概是自己的程序调用库的时候,库中用到了pthread库 编译时候 -lpthread 即可gcc main.c -omian -ldl -lpthread原创 2015-04-03 14:06:43 · 3197 阅读 · 0 评论