多线程
allenltiverson
CSDN软件与网页收藏居然不同步…
展开
-
线程
l 窗口置顶 ::SetWindowPos(&wndTopMost, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | WS_EX_TOPMOST); l 取消置顶 ::SetWindowPos(GetSafeHwnd(), HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);原创 2012-07-26 13:16:23 · 1084 阅读 · 0 评论 -
临界区
每个进程中访问临界资源的那段代码称为临界区(Critical Section)(临界资源是一次仅允许一个进程使用的共享资源)。 每次只准许一个进程进入临界区,进入后不允许其他进程进入。不论是硬件临界资源,还是软件临界资源,多个进程必须互斥地对它进行访问。 如果有多个线程试图同时访问临界区,那么在有一个线程进入后其他所有试图访问此临界区的线程将被挂起,并一直持续到进入临界区的线程离开。临界区在被原创 2013-11-18 20:24:11 · 795 阅读 · 0 评论 -
Windows API ——CreateMutex——创建互斥对象
互斥对象是系统内核维护的一种数据结构,它保证了对象对单个线程的访问权 互斥对象的结构:包含了一个使用数量,一个线程ID,一个计数器 使用数量是指有多少个线程在调用该对象,线程ID是指互斥对象维护的线程的ID 计数器表示当前线程调用该对象的次数 HANDLE CreateMutex( LPSECURITY_ATTRIBUTES lpMutexAttributes, 安全属原创 2013-11-18 20:24:13 · 878 阅读 · 0 评论 -
信号量
1 BOOL ReleaseSemaphore( 2 HANDLE hSemaphore, // 信号量句柄 3 LONG lReleaseCount, // 计数递增数量 4 LPLONG lpPreviousCount // 先前计数 5 ); 6 7 C++信号量Semaphore和MFC中的CSemaphore类使用【转】原创 2013-11-18 20:24:20 · 648 阅读 · 0 评论 -
CreateThread和_beginthread的区别
1.程序: 程序构成: (1)源代码 (2)可执行的二进制代码 程序是指令和数据的有序集合,其本身没有任何运行的含义,是一个静态的概念。由操作系统加载其可执行的二进制代码,分配相应的数据结构:进程控制块PCB(Process Control Block),进行一些列初始化操作(创建进行ID、分配时间片等)后得到进程。 2.进程:分配资源的最小单位 进程原创 2013-11-18 20:26:31 · 1093 阅读 · 0 评论 -
Windows API——CreateEvent——创建事件
事件是一个允许一个线程在某种情况发生时,唤醒另外一个线程的同步对象。事件告诉线程何时去执行某一给定的任务,从而使多个线程流平滑 CreateEvent是创建windows事件的意思,作用主要用在判断线程退出,线程锁定方面. HANDLE CreateEvent( LPSECURITY_ATTRIBUTES lpEventAttributes, // 安全属性 BOOL bManu原创 2013-11-18 20:24:15 · 1286 阅读 · 0 评论 -
互斥对象、事件对象、关键代码段的应用和比较
互斥对象、事件对象、关键代码段的应用和比较 线程同步的方式主要有三种:互斥对象、事件对象和关键代码段。 一. 互斥对象 互斥对象(mutex)属于内核对象,它能够确保线程拥有对单个资源的互斥访问权。 互斥对象包含一个使用数量,一个线程ID和一个计数器。其中线程ID用于标识系统中的哪个线程当前拥有互斥对象,计数器用于指明该线程拥有互斥对象的次数。原创 2013-11-18 20:24:18 · 748 阅读 · 0 评论