前一段在CSDN首页上看到一些值得学习的小型开源项目学习(http://code.csdn.net/news/2822568)。因为一直有用Qt,所以选了sigslot进行学习。
可以从(http://sourceforge.net/projects/sigslot/ )获取源代码,注意看一下patch才能正常使用。
多线程同步:
84——103 使用宏确定运行环境,以确定多线程下的同步机制。
104——278 根据宏,实现不同环境下的同步机制。分为以下三种:
single_threaded:单线程环境不加锁。
multi_thread_global:多线程,加全局锁,有windows和linux实现。
multi_thread_local:多线程,为局部锁,对每次调用实现,有windows和linux实现。
对于使用的同步机制,由SIGSLOT_DEFAULT_MT_POLICY定义,在下面用到的signal/has_slot类中,使用模板确定具体使用的同步机制。基本所有类都有用到,类型名称为mt_policy。
lock_block使用C++的构造函数和析