Win32 多线程
Floydwish
在路上
展开
-
Win32线程同步 - 临界区(关键段)
/* * 临界区(关键段):线程同步方式,用于限制“公用代码”一次只能被一个线程使用 * 使用示例:全局变量 * 使用限制:只能用于同一个进程中的线程,不能跨进程同步 */ #include <windows.h> #include <stdio.h> #include <process.h> #includ...原创 2018-10-09 16:21:54 · 370 阅读 · 0 评论 -
Win32线程同步 - 互斥器
/* * 说明:Mutex(互斥器)的使用 * 特点:1.一个时间只能有一个线程拥有mutex,这点类似critical section * 2.可以跨进程使用,需要创建时指定名称 * 3.可以指定“结束等待”时间长度 */ #include <iostream> ...原创 2018-10-09 16:34:07 · 210 阅读 · 0 评论 -
Win32线程同步 - 信号量
/* * 说明:使用信号量进行线程同步 * 特点:允许多个线程在同一时刻访问同一资源 * 解释:Win32中的Semaphore可以被锁住最多n次,其中n是Semaphore被产生时指定的 * 使用:1.多个线程可以同时锁定一个semaphore,不存在拥有权概念 * 2.一旦Semaphore现值...原创 2018-10-09 16:40:02 · 802 阅读 · 1 评论 -
Win32线程同步 - 事件
/* * 说明:线程同步中Event对象的使用 * 特点:核心对象 * 目的:成为激发或未激发状态,两种状态完全由程序控制 * 执行状态: * 1. 线程编号的输出没有重复,说明主线程与子线程达到了同步。 * 2. 全局资源的输出是递增的,说明各子线程已经互斥的访问和输出该全局资源。 */ #i...原创 2018-10-09 16:57:45 · 235 阅读 · 0 评论 -
Win32线程同步 - 原子访问
1. 对原子访问的说明 情形:线程同步中大部分情况与原子访问有关。 作用:原子访问可以保证一个线程在访问资源的同时没有其他线程访问同一资源。 原因:Windows是抢占式多线程环境,多个线程同时操作同一个全局变量时,可能并不是如预期中的先后 执行,而是抢占式执行,最终结果难以预期。 2. 未使用原子访问时,代码示例及执行结果说明 #include "stdafx.h" #include &l...原创 2018-10-10 16:20:41 · 420 阅读 · 0 评论