互斥和信号量是多线程编程的两个基础,其原理就不详细说了,大家去看看操作系统的书或者网上查查吧。
对于互斥的实现,无论什么操作系统都离不开三个步骤
1.初始化互斥锁
2.锁操作
3.解锁操作
对于不同的系统只是实现的函数有一些不同而已,但是功能其实都大同小异,在锁操作和解锁操作的时候大部分系统都有超时机制在里面,来保证不会一直锁在某个地方,我们为了框架简单,没有设置超时,进行锁操作的时候如果得不到锁,将一直等待在那里。
Mutex的基类我们描述如下

本文介绍了C++中多线程编程的基础——Mutex互斥和Sem信号量。阐述了互斥锁的初始化、锁定和解锁操作,并提供了Mutex基类的定义。同样,对于信号量,文章提到了初始化、发送和接收信号量的操作,并定义了CCountingSem基类。通过COperatingSystemFactory类创建不同操作系统的Mutex和Semaphore实例。文章最后指出,有了互斥锁和信号量,可以进一步构建多线程模型。
最低0.47元/天 解锁文章
2706

被折叠的 条评论
为什么被折叠?



