java什么时候需要同步_java – 我什么时候应该同步我班级的方法?

我在考虑创建一个类(如String,StringBuffer等).这可以在单线程和多线程环境中使用.我不知道开发人员可能正在使用哪种环境.预计最坏的情况,我可以同步.

但,

1.同步会影响性能.

2.没有同步,它不是线程安全的.

所以,我有两个选择.

>让类不同步 – 但是使用此类的开发人员需要在适当的时候同步它.

>拥有所有同步方法 – 并取得性能影响.

我已经看到Java中的许多(如果不是全部.例如,ArrayList over Vector)类已经发展为采用第一种方法.在为我的班级决定这两个选项之前,我需要考虑哪些事情?

或者以不同的方式,我应该使用“public synchronized void bar()”而不是“public void bar()”只有当我确定bar可以在多线程环境中使用并且不应该运行时同时?

编辑所以,显然我在标题中误用了“实用工具类”这个词.谢谢,Jon Skeet指出了这一点.我从标题中删除了世界“实用程序”.

举个例子,我在想一个类似Counter的课程.计数器就是一个例子.还有其他方法可以实现Counter.但这个问题是关于同步. Counter对象记录已完成的事情的次数.但它可以用于单线程或多线程环境.那么,我该如何处理Counter中的同步问题.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值