`
knight_black_bob
  • 浏览: 822917 次
  • 性别: 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/



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

 

分享到:
评论

相关推荐

    HashMap的特点与使用方法详解.docx

    多线程环境下,建议使用 ConcurrentHashMap,或者使用 Collections.synchronizedMap(hashMap) 将 HashMap 转成线程同步的。 只能使用关联的键来获取值。 HashMap 只能存储对象,所以基本数据类型应该使用其包装器...

    HashMap如何添加元素详解

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

    Java理论与实践:并发集合类

    本文介绍了在Java类库中出现的第一个关联的...Hashtable的后继者HashMap是作为JDK1.2中的集合框架的一部分出现的,它通过提供一个不同步的基类和一个同步的包装器Collections.synchronizedMap,解决了线程安全性问题。

    【面试系列】并发容器之ConcurrentHashMap

    微信公众号:放开我我还能学 分享知识,共同进步! 看你简历里写了 HashMap,那你说说它存在什么缺点? 线程不安全 迭代时无法修改值 ...Collections#SynchronizedMap 同步包装器 SynchronizedMap

    Android代码-java-concurrency-patterns

    Synchronized Collections Concurrent Collections CopyOnWriteArrayList ConcurrentHashMap Blocking Queue Executors Fixed Thread Pool Cached Thread Pool Single Thread Pool Scheduled Thread Pool ...

    Java的线程安全与不安全集合.docx

    使用Collections.synchronizedList(new ArrayList()):内部直接将接受的List对象传递给静态内部类SynchronizedList对象,然后Collections.synchronizedList(new ArrayList())返回的List对象的调用方法都是直接调用...

    javabiginteger源码-MultiThreadMode:多线程模式

    使用synchronized方法或代码块,只能保证某一段代码是只能由一个线程执行。 也可使用Semaphore类设置资源数量 Immutable模式 Immutable类:通过final关键字设置类的属性,且类中不存在setter方法。 优点:不需使用...

    Java的CopyOnWriteArrayList功能详解,及无法保证数据是实时同步.docx

    如果对 synchronized 关键字不太了解的话,可以点击下面的链接查看我之前写的一篇文章。高并发的情况下,一般都要求...那有些同学可能会说,可以使用 Collections.synchronizedList() 让 ArrayList 变成线程安全啊。

    Java容器.xmind

    Collections 标记: 均以synchronized实现, 性能没用提高 synchronizedCollection synchronizedList synchronizedSet synchronizedMap synchronizedSortedSet synchronizedSortedSet JUC ...

    C#中Array与ArrayList用法及转换的方法

    ArrayList 类提供在大多数 Collections 类中提供但不在 Array 类中提供的一些功能。例如:  Array 的容量是固定的,而 ArrayList 的容量是根据需要自动扩展的。如果更改了 ArrayList.Capacity 属性的值,则自动进行...

    Java 7 Concurrency Cookbook

    Chapter 6, Concurrent Collections will teach the readers to how to use some concurrent data structures provided by the Java language. These data structures must be used in concurrent programs to avoid...

    Java弱引用实现源码-coding-guide_i3geek:一名JAVA程序员,将自己的编程学习之路做以总结并进行分享。内容包括但不限于数

    Collections List ArrayList LinkedList Vector Set HashMap TreeMap LinkedHashMap ConcerrentHashMap Set TreeMap HashMap synchronized volatile transient implements extends public private protected this ...

    基于javatcpsocket通信的拆包和装包源码-coding-guide_i3geek-master:编码指南_i3geek-master

    Collections List ArrayList LinkedList Vector Set HashMap TreeMap LinkedHashMap ConcerrentHashMap Set TreeMap HashMap synchronized volatile transient implements extends public private protected this ...

    java8源码-JavaRobot:Java学习笔记,JavaLearningNote

    synchronized关键字 Java String Java Arrays Java Collections Java 泛型 Java NIO Buffer Channel Selector Java 8 Features 源码解读 String源码系列 List源码系列 ArrayList LinkedList CopyOnWriteArrayList ...

    史上最全java面试,103项重点知识,带目录

    19. Collection 和 Collections 有什么区别? 9 20. List、Set、Map 之间的区别是什么? 9 21. HashMap 和 Hashtable 有什么区别? 10 22. 如何决定使用 HashMap 还是 TreeMap? 10 23. 说一下 HashMap 的实现原理?...

    变态级JAVA程序员面试32问

     第六,Collection 和 Collections的区别。  第七,什么时候用assert.  第八,GC是什么? 为什么要有GC?  第九,String s = new String("xyz");创建了几个String Object?  第十,Math.round(11.5)等...

    java9源码下载-Java:java练习

    java9 源码下载 Java se 基础练习 每个目录为一个大的模块(如 集合,数据结构,反射,设计模式等),目录的详信息将在二级目录下详细列出 ...Collections集合类的使用(synchronized 包装等) queue stack commonlyCla

    Learn.Java.for.Android.Development_Apress.2010+src

    Continuing, you investigate strictfp, class literals, synchronized, volatile, the enhanced for loop statement, autoboxing/unboxing, and transient fields. The book also briefly presents most (if not ...

    基于javatcpsocket通信的拆包和装包源码-java-interview:java基础知识点

    Collection&Collections区别 hashSet如何保证不重复 什么是线程同步 进程 和 线程 Lock 和 Synchronized 的区别 常见的内存溢出 重载和重写的区别 构造器Constructor是否能被override public protected private 自动...

    Programming Microsoft LINQ in Microsoft.NET Framework 4

    Check out the related LiveLessons video product, C# 2010 Fundamentals: Parts I, II and III, containing 20+ hours of video synchronized to this book: www.deitel.com/livelessons. Practical, example-...

Global site tag (gtag.js) - Google Analytics