`
knight_black_bob
  • 浏览: 853016 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Collections,Synchronized

阅读更多

 

import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;

//public static Collection synchronizedCollention(Collection c)
//
//public static List synchronizedList(list l)
//
//public static Map synchronizedMap(Map m)
//
//public static Set synchronizedSet(Set s)
//
//public static SortedMap synchronizedSortedMap(SortedMap sm)
//
//public static SortedSet synchronizedSortedSet(SortedSet ss)

public class CollectionsSynchronizedTest {

	public static void main(String[] args) {
		//为了安全起见,仅使用同步列表的一个引用,这样可以确保控制了所有访问
        //集合必须同步化,这里是一个List
        List wordList = Collections.synchronizedList(new ArrayList());

        //wordList中的add方法是同步方法,会获取wordList实例的对象锁
        wordList.add("Iterators");
        wordList.add("require");
        wordList.add("special");
        wordList.add("handling");

        //获取wordList实例的对象锁,
        //迭代时,阻塞其他线程调用add或remove等方法修改元素
        synchronized ( wordList ) {
            Iterator iter = wordList.iterator();
            while ( iter.hasNext() ) {
                String s = (String) iter.next();
                System.out.println("found string: " + s + ", length=" + s.length());
            }
        }
    }
}

 

 

 

 

 

 

 

 

 

 

 

 

捐助开发者 

在兴趣的驱动下,写一个免费的东西,有欣喜,也还有汗水,希望你喜欢我的作品,同时也能支持一下。 当然,有钱捧个钱场(支持支付宝和微信 以及扣扣群),没钱捧个人场,谢谢各位。

 

个人主页http://knight-black-bob.iteye.com/



 
 
 谢谢您的赞助,我会做的更好!

 

分享到:
评论

相关推荐

    commons-collections-3.2.1-bin

    装饰器模式也被广泛应用于此库,通过包装标准集合,如`UnmodifiableList`、`SynchronizedMap`等,以增加不可修改性或线程安全性。 3. **转换和函数**:库中包含了`Transformer`接口,允许将一个对象转换为另一个...

    Apache Commons Collections 4.0 API+jar包

    此外,Apache Commons Collections 还提供了数据结构的装饰器,如`Unmodifiable*`、`Synchronized*`和`FixedSize*`,这些装饰器可以用于安全地封装现有的集合,增加不可修改性、同步控制或固定大小等特性。...

    commons-collections-3.2.1.rar代码及原jar文件

    3. **装饰器模式**:通过装饰器类,如`UnmodifiableMap`, `SynchronizedMap`, `PredicatedMap`等,可以为现有的集合添加额外的行为,如读写保护、同步控制、条件过滤等,而无需修改原始集合类。 4. **转换与函数**...

    Java SE编程入门教程 collection与collections(共7页).pptx

    此外,Collections还提供了同步集合的方法,如synchronizedSet()和synchronizedMap(),它们返回的是线程安全的集合,适用于多线程环境。 在示例代码中,我们看到如何使用Collections.sort()方法对一个包含Double...

    C# System.Collections 非泛型接口方法解析.pdf

    在C#编程中,System.Collections命名空间包含了许多非泛型集合接口,这些接口是.NET框架早期版本的基础,尽管现在泛型集合接口(如`IEnumerable<T>`)更为常用,但理解非泛型接口对于维护旧代码或处理特定场景仍然很...

    aduna-commons-collections-2.7.0.jar.zip

    - 它还提供了 `Unmodifiable` 和 `Synchronized` 包装器,可以快速使集合变得不可修改或线程安全,避免了显式同步代码的编写。 5. **兼容性和依赖性**: - Aduna Commons Collections 2.7.0 版本兼容 Java 2 SDK ...

    2021面试题总结数据结构篇.pdf

    `Collections.synchronizedMap`的内部实现非常简单,通过一个私有的锁对象(通常为`SynchronizedMap`类本身)来同步所有对外暴露的方法。每当调用`get`、`put`等方法时,都会通过`synchronized`关键字实现方法级别的...

    javaclooections类.docx

    - `Collections.synchronizedMap(Map m)`: 创建同步映射。 - `Collections.synchronizedSet(Set s)`: 创建同步集合。 - `Collections.synchronizedSortedMap(SortedMap m)`: 创建同步排序映射。 - `Collections....

    Java多线程安全集合

    例如,`Collections.synchronizedList`和`Collections.synchronizedMap`。同步集合在每个方法上加锁,确保同一时间只有一个线程可以执行操作。虽然提供了基本的线程安全性,但它们不是高度优化的并发解决方案,因为...

    Collections源码java-JCF-CodeAnalysis:Javacollectionsframework源码分析

    Collections提供了对Map的常见操作,如`Collections.emptyMap()`返回一个不可修改的空Map,`Collections.synchronizedMap()`返回一个线程安全的Map。特别地,`Collections.unmodifiableMap()`返回一个不可修改的视图...

    关于如何解决HashMap线程安全问题的介绍

    1. 使用Collections.synchronizedMap():Java提供了一个便捷的方法,通过Collections.synchronizedMap()可以将HashMap转换为线程安全的Map。但是需要注意,虽然这个方法可以保证基本的线程安全,但迭代仍然是非线程...

    Collections源码java-Java-Collection-:对Java的Collection框架源码阅读

    4. **集合同步化**:`synchronizedCollection(Collection<T> c)`、`synchronizedList(List<T> list)`和`synchronizedMap(Map, V> m)`等方法可以将集合包装成线程安全的版本,适用于多线程环境。 5. **集合填充**:`...

    Collections源码java-designpatterns:设计模式实现的集合。目前有Java和C++源代码

    4. **装饰器模式**:Collections框架中的`Collections.synchronized*`、`Collections.unmodifiable*`等方法,提供了对集合的动态增强功能,如线程安全或不可修改性,这些都是装饰器模式的体现。它们在不改变原有类的...

    advanced-java-collections:高级Java课程-集合框架的源代码-Source code collection

    使用`Collections.unmodifiable*()`、`Collections.synchronized*()`等工厂方法,可以创建只读或线程安全的集合视图,增强代码的安全性。 10. **自定义集合**: 学习如何通过实现集合接口或继承现有类来自定义...

    Collections源码java-collections_analysis:手写spring(先)及java自带的集合框架源码分析(后)

    Collections还提供了一些线程安全的方法,如synchronizedList()、synchronizedMap()等,用于创建线程安全的集合。这些方法通过添加同步锁,确保了多线程环境下的并发访问安全,但同时也可能带来性能上的损失。 4. ...

    HashMap源码分析系列-第四弹:HashMap多线程解决方案.docx

    2. **使用`Collections.synchronizedMap()`方法**:可以将普通的`HashMap`转换成线程安全的版本。 3. **读写分离**:虽然文档中没有详细解释这一策略,但可以通过使用读写锁来实现。 #### 四、使用并发环境安全的...

    HashMap如何添加元素详解

    如果我么需要有一个线程安全的HashMap,可以使用Collections.synchronizedMap(Map m)方法获得线程安全的HashMap,也可以使用ConcurrentHashMap类创建线程安全的map。 存储的元素在jdk1.7当中是Entry作为存储的

Global site tag (gtag.js) - Google Analytics