Java:同步列表

我有一个ArrayList,并且只能在同步块中操作它,我也应该使用Collections.synchronizedList吗?
例:

List list = Collections.synchronizedList(new ArrayList());    
// versus List list = new ArrayList();    
synchronized(list) {
      // my code
}

解决方法:

>如果仅在同步块内访问列表,则不需要syncedList()
>如果仅使用基本操作(add(),remove()等)访问列表,并且这些操作的调用互不依赖(即原子性不成问题),则只能使用syncedList()而不使用显式同步块
>如果您希望能够在没有同步块的情况下调用基本操作,但又具有应为原子的复合操作(包括迭代),则对于复合操作,既需要syncList()又需要synchornized块

上一篇:mysql8设置字段内容区分大小写


下一篇:User Profile Incremental Synchronization RPC 服务器不可用