当不想库内的每个类都具有线程安全性(因为同步会带来性能的损失),时可以选择编写线程安全包装器。
下面的例子告诉大家如何对一个对象做线程安全的设计。
下面看看这个关系图:
BookLib类的思路,为BookLib类提供一种线程安全的访问(同步)。
代码如下:
1 集合类接口
2 Book成员类
3 Booklib结合类实现:注意SyncRoot属性(在同步类中需要锁定她的哦)
当类需要被同步时,可以调用方法Synchronzied来实现。
4 SyncBookLib同步集合类(是非同步集合类的子类)
5 主程序调用