这是一个被问过很多次的问题,但并非总是如此,Java 初学者(像我一样)可以深入理解给出的答案。
我一直在阅读一些 Java 书籍,在其中一本中我读到 Vector 和 ArrayList 之间的区别在于前者是同步的,而后者不是(与 StringBuffer 与 StringBuilder 相同)。
这本书解释了«如果我们需要它,我们可以将同步“添加”到未同步的代码中»。
在这篇文章中,Brian Roach 解释了 « StringBuffer 和 Vector 的线程同步会增加开销(除非您需要它,但即便如此,也有办法将其添加到较新的类中) »。
所以,我有三个问题:
1)如果同步增加了开销,但如果我们需要它可以添加到更新的类,为什么不使用 StringBuffer 和 Vector 而不是向 StringBuilder 和 ArrayList 添加同步?
2)我们如何向类添加同步?
3)同步的目的是什么?
对不起我的新手问题(我知道我必须阅读更多的书),但这些概念不是很容易掌握。