在网络编程中多线程是一个必用一种技术,但是在初步学习多线程的时候很多人会遇到这样或那样的问题。多线程编程时,在有读线程和写线程并发的时候就需要读写锁了。ACE的读写锁机制完全可以解决这些问题。
ACE定义了四个宏,也就是:ACE_WRITE_GUARD、ACE_WRITE_GUARD_RETURN、ACE_READ_GUARD、ACE_READ_GUARD_RETURN。这四个宏的目的是为了实现高效的读写机制。其实就是定义两种对象:ACE_Read_Guard和ACE_Write_Guard。这两个类的意义在于在构造的时候,自动对应类型的锁,在析构的时候释放。
ACE的读写锁是写优先的,即:当有写线程想要写时,后面的读线程要处于阻塞状态,等待写线程退出时再开始