当前位置:  技术问答>java相关

我们说某某类是unsynchronized,有点不明白。高手讲讲。

    来源: 互联网  发布时间:2015-01-24

    本文导语:  我在看jdk doc时,说ArrayList类是unsynchronized。不大明白。 还有: This class is roughly equivalent to Vector, except that it is unsynchronized. Note that this implementation is not synchronized. If multiple threads access an ArrayList instanc...

我在看jdk doc时,说ArrayList类是unsynchronized。不大明白。
还有:
This class is roughly equivalent to Vector, except that it is unsynchronized.

Note that this implementation is not synchronized. If multiple threads access an ArrayList instance concurrently, and at least one of the threads modifies the list structurally, it must be synchronized externally. (A structural modification is any operation that adds or deletes one or more elements, or explicitly resizes the backing array; merely setting the value of an element is not a structural modification.) This is typically accomplished by synchronizing on some object that naturally encapsulates the list. If no such object exists, the list should be "wrapped" using the Collections.synchronizedList method. This is best done at creation time, to prevent accidental unsynchronized access to the list: 

List list = Collections.synchronizedList(new ArrayList(...));
 
The iterators returned by this class's iterator and listIterator methods are fail-fast: if list is structurally modified at any time after the iterator is created, in any way except through the iterator's own remove or add methods, the iterator will throw a ConcurrentModificationException. Thus, in the face of concurrent modification, the iterator fails quickly and cleanly, rather than risking arbitrary, non-deterministic behavior at an undetermined time in the future.

我不明白:
如果一个类是synchronized,是不是就相当于这个类,其中的方法都是加了synchronized修饰字的,这样这个类的实例在多线程环境中各个方法就是安全的了。
ArrayList和Vector的差别是不是就是多加了synchronized关键字?
也就是说,如果我在使用ArrayList时,可以用synchronize(s)来加以同步吧?

|
ArrayList is unsynchronized.
当只有一个线程访问时,ArrayList 比 Vector 快。
多线程时,还是用 Vector 吧。

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间javax.sound.sampled接口mixer的类成员方法: unsynchronize定义及介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3