我在考虑创建一个类(如String,StringBuffer等).这可以在单线程和多线程环境中使用.我不知道开发人员可能正在使用哪种环境.预计最坏的情况,我可以同步.
但,
1.同步会影响性能.
2.没有同步,它不是线程安全的.
所以,我有两个选择.
>让类不同步 – 但是使用此类的开发人员需要在适当的时候同步它.
>拥有所有同步方法 – 并取得性能影响.
我已经看到Java中的许多(如果不是全部.例如,ArrayList over Vector)类已经发展为采用第一种方法.在为我的班级决定这两个选项之前,我需要考虑哪些事情?
或者以不同的方式,我应该使用“public synchronized void bar()”而不是“public void bar()”只有当我确定bar可以在多线程环境中使用并且不应该运行时同时?
编辑所以,显然我在标题中误用了“实用工具类”这个词.谢谢,Jon Skeet指出了这一点.我从标题中删除了世界“实用程序”.
举个例子,我在想一个类似Counter的课程.计数器就是一个例子.还有其他方法可以实现Counter.但这个问题是关于同步. Counter对象记录已完成的事情的次数.但它可以用于单线程或多线程环境.那么,我该如何处理Counter中的同步问题.