
Windows多线程
文章平均质量分 58
熠熠L
这个作者很懒,什么都没留下…
展开
-
【C语言】Windows下的多线程编程-信号量
信号量主要将用到四个函数。下面是这些函数的原型和使用说明。CreateMutex创建互斥量/** \brief 创建一个信号量 * * \param lpSemaphoreAttributes 表示安全控制,一般直接传入NULL。 * \param lInitialCount 设置信号量的初始计数。可设置零到lMaximumCount之间的一个值 * \param lMaximumCount 设置信号量的最大计数 * \param lpName 指向信号量对象名的指针 *原创 2022-04-15 17:07:01 · 1941 阅读 · 1 评论 -
【C语言】Windows下的多线程编程-互斥量
互斥量Mutex主要将用到四个函数。下面是这些函数的原型和使用说明。CreateMutex创建互斥量/** \brief 创建一个互斥量(MUTEX) * * \param lpMutexAttributes 表示安全控制,一般直接传入NULL。 * \param bInitialOwner 用来确定互斥量的初始拥有者。如果传入TRUE表示互斥量对象内部会记录创建它的线程的线程ID号并将递归计数设置为1,由于该线程ID非零,所以互斥量处于未触发状态。 * 如果传入FALSE,那原创 2022-04-15 16:40:53 · 2057 阅读 · 0 评论 -
【C语言】Windows下的多线程编程-事件
事件Event上是个内核对象,它的使用非常方便。下面列出一些常用的函数。CreateEvent创建事件/** \brief 创建事件 * * \param lpEventAttributes 表示安全控制,一般直接传入NULL * \param bManualReset 确定事件是手动置位还是自动置位,传入TRUE表示手动置位,传入FALSE表示自动置位。 * 如果为自动置位,则对该事件调用WaitForSingleObject()后会自动调用ResetEvent()使事件变成未原创 2022-04-15 15:25:49 · 707 阅读 · 0 评论 -
【C语言】Windows下的多线程编程-关键段(临界区)
临界区(关键段):线程同步方式,用于限制“公用代码”一次只能被一个线程使用关键段定义typedef struct _RTL_CRITICAL_SECTION { PRTL_CRITICAL_SECTION_DEBUG DebugInfo;//调试用 // // The following three fields control entering and exiting the critical // section for the resource //原创 2022-04-14 22:03:11 · 1145 阅读 · 0 评论 -
【C语言】Windows下的多线程编程-原子操作
在计算机中,原子操作又称为原语,操作系统保证:原子操作是不可分割的,在执行完毕之前不会被任何其它任务或事件中断。下面列出一些常用的Interlocked系列函数:InterlockedIncrement自增/** \brief 实现数的原子性自减 * * \param lpAddend 指向要递增的变量的指针 * \return 返回自增后的变量值 * */LONG InterlockedIncrement(LPLONG lpAddend);在C中相当于int i = 0;原创 2022-04-14 19:55:10 · 1163 阅读 · 0 评论 -
【C语言】Windows下的多线程编程-创建线程
_beginthread和_beginthreadex是Windows下创建线程的函数。结束线程函数_endthread和_endthreadex。主线程结束了,子线程也会结束。_beginthread函数原型/** \brief 创建一个线程 * * \param start_address 新线程的起始地址 ,指向新线程调用的函数的起始地址 * \param stack_size 新线程的堆栈大小,可以为0 * \param arglist 传递给线程的参数列表,无参数时为原创 2022-04-14 17:05:45 · 7132 阅读 · 0 评论