V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
c4f36e5766583218
V2EX  ›  Java

Vector.Itr 该类源码中的 synchronized 是为了?

  •  
  •   c4f36e5766583218 · Apr 9, 2019 · 2449 views
    This topic created in 2580 days ago, the information mentioned may be changed or developed.

    不知道什么关键字触发 403 Forbidden nginx 了,我一段段打

    1. java.util.Vector.Itr 源码里面好几处,这样写的作用是?
    synchronized (Vector.this) {
    
    Supplement 1  ·  Apr 9, 2019
    1. 1.8的java.util.Vector#readObject(ObjectInputStream) 源码里没看到defaultReadObject也没读capacityIncrement,反序列化会丢capacityIncrement值吧?
    Supplement 2  ·  Apr 10, 2019

    三: SynchronizedList和Vector的区别?只回答sync相关的区别即可(比如Collections#synchronizedList(ArrayList)与Vector)

    Supplement 3  ·  Apr 10, 2019
    #SynchronizedList和Vector的区别,网上搜到一个但没没明白要点
    #老是被ban,不知道触发了什么关键字,浏览器Console执行下
    ["h","t","t","p","s",":","/","/","w","w","w",".","h","o","l","l","i","s","c","h","u","a","n","g",".","c","o","m","/","a","r","c","h","i","v","e","s","/","4","9","8"].join("/")
    
    4 replies    2019-04-11 08:43:08 +08:00
    jsshaojinjie
        1
    jsshaojinjie  
       Apr 9, 2019
    是为了线程安全
    c4f36e5766583218
        2
    c4f36e5766583218  
    OP
       Apr 10, 2019
    fix: 打错了,是.join("")

    @jsshaojinjie #1

    * 哦,我搞错了,问题 1 应该是这样: 这样写是保证 Vector.Itr 创建的实例是线程安全的,比如 Vector.Itr#remove()方法内部```remove(lastRet);```不会并发导致数据多删,(线程安全并不是说不会报错,像 remove 的话还是可能 ArrayIndexOutOfBoundsException 的)
    * 那问题 3 应该就是说 SynchronizedList 返回的 Iterator 并不一定是线程安全的

    updated: 那看下问题 2 吧。
    jsshaojinjie
        3
    jsshaojinjie  
       Apr 11, 2019
    @c4f36e5766583218 哪个是问题 2
    c4f36e5766583218
        4
    c4f36e5766583218  
    OP
       Apr 11, 2019
    @jsshaojinjie #3 问题 2=第 1 条附言
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   787 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 20:20 · PVG 04:20 · LAX 13:20 · JFK 16:20
    ♥ Do have faith in what you're doing.