随笔分类 - windows编程
摘要:这几天帮同学写了个简单的gui应用,用的qt5.0.2_msvc2010。写的程序需要在一台没有装过vs和qt的机子上运行。 在release下编译运行通过后,把相应的依赖dll加入到exe相同的文件夹,我们可以使用dependency walk或者ProcessExplorer查询exe依赖的dll。 添加如下的dll后,exe就可以在其他的机子上运行 dll在 文件夹 “G:\so...
阅读全文
摘要:我的windows多线程系列文章:windows多线程--原子操作windows多线程同步--事件windows多线程同步--互斥量windows多线程同步--临界区windows多线程同步--信号量windows 多线程: CreateThread、_beginthread、_beginthreadex、AfxBeginThread 的区别MoreWindows的多线程系列文章秒杀多线程面试题系列一 同步互斥区别同步:同步是指线程之间所具有的一种制约关系,一个线程的执行依赖另一个线程的消息,当它没有得到另一个线程的消息时应等待,直到消息到达时才被唤醒,即他们之间有先后关系。互斥:对于共享的进
阅读全文
摘要:推荐参考博客:秒杀多线程第三篇 原子操作 Interlocked系列函数 原子操作 VS 非原子操作原子操作就是不会被线程调度机制打断的操作,这种操作一旦开始,就一直运行到结束,中间不会有任何线程切换。 本文地址首先从一个简单的例子来看,1000个线程同时对一个全局变量(初始化为0)做++操作,最后我们期望的这个变量的值是1000,但是有时候结果却事与愿违: #include #include #include #include using namespace std;volatile int g_cnt;unsigned __stdcall threadFun(void *param){ .
阅读全文
摘要:推荐参考博客:秒杀多线程第六篇 经典线程同步 事件Event 事件是内核对象,多用于线程间通信,可以跨进程同步 事件主要用到三个函数:CreateEvent,OpenEvent,SetEvent,ResetEvent 本文地址 CreateEvent 函数功能...
阅读全文
摘要:关于互斥量的基本概念:百度百科互斥量 推荐参考博客:秒杀多线程第七篇 经典线程同步 互斥量Mutex 注意:互斥量也是一个内核对象,它用来确保一个线程独占一个资源的访问。互斥量与关键段的行为非常相似,并且互斥量可以用于不同进程中的线程互斥访问资源...
阅读全文
摘要:推荐参考博客:秒杀多线程第五篇 经典线程同步 关键段CS 关于临界区的观念,一般操作系统书上面都有。 适用范围:它只能同步一个进程中的线程,不能跨进程同步。一般用它来做单个进程内的代码快同步,效率比较高 windows中与临界区有关的结构是 CRITICAL_SECTION,关于该结构体的内部结构可参考here 使用时,主线程中要先初始化临界区,最后要删除临界区,具体使用见下面代码:...
阅读全文
摘要:推荐参考博客:秒杀多线程第八篇 经典线程同步 信号量Semaphore 首先先介绍和windows信号量有关的两个API:创建信号量、释放信号量 HANDLE WINAPI CreateSemaphore( msdn官网解释 _In_opt_ LPSECURITY_ATTRIBUTES lpSemaphoreAttributes ...
阅读全文
摘要:推荐参考博客:秒杀多线程第二篇 多线程第一次亲密接触 CreateThread与_beginthreadex本质区别 CreateThread:Windows的API函数(SDK函数的标准形式,直截了当的创建方式,任何场合都可以使用),提供操作系统级别的创建线程的操作,且仅限于工作者线程 beginthread beginthreadex:MS对C Runtime库的扩展SDK函数,...
阅读全文