摘要:
1相关理念(1)类名条件变量和互斥变量都是boost库中被封装的类。(2)条件变量条件变量是thread库提供的一种等待线程同步的机制,可实现线程间的通信,它必须与互斥量配合使用,等待另一个线程中某个事件发生后本线程才能继续执行。(3)互斥变量互斥量是一种用于多线程编程的手段,它可以在多线程编程中防止多个线程同时操作共享资源[或称为临界区]。思想为:在每个线程开始的第一条语句使用获取互斥变量“锁有权”的语句,一旦一个线程[线程1]锁住了互斥量,那么其它线程只有等待线程1解锁互斥量后且另一线程[线程2]又获取到互斥变量的“锁有权”后才能运行这个线程[线程2]后面的代码。(4)互斥量有可能的缺点[ 阅读全文
摘要:
进程中线程同步的四种常用方式:1、 临界区(CCriticalSection)当多个线程访问一个独占性共享资源时,可以使用临界区对象。拥有临界区的线程可以访问被保护起来的资源或代码段,其他线程若想访问,则被挂起,直到拥有临界区的线程放弃临界区为止。具体应用方式:1、 定义临界区对象CcriticalSection g_CriticalSection;2、 在访问共享资源(代码或变量)之前,先获得临界区对象,g_CriticalSection.Lock();3、 访问共享资源后,则放弃临界区对象,g_CriticalSection.Unlock(); 2、 事件(CEvent)事件机制,则允许一 阅读全文