`

java并发容器

    博客分类:
  • JAVA
 
阅读更多

一: 同步容器都是线程安全的

如vector 和 hashtable ,collections.synchronized 实现线程安全的是通过,将它们的状态封装起来,并对每个公有方法都进行同步。但在一些复合操作时,还是要加锁来保护复合操作。在容器在迭代过程中被修改时,会抛异常

 

二: 并发容器可以改进一下同步容器的性能: 因为并发容器增加了对一些常见复合操作的支持,迭代器都没有加锁。

 

1、ConcurrentMap , CopyOnWriteArrayList 

2、jdk 1.5 新增容器 :Queue、BlockingQueue

 

三:ConcurrentMap

优点

1、并不是将每个方法都在同一个锁上同步并使得每次只能有一个线程访问容器,而是使用一种粒度更细的加锁机制来实现。

2、提供的迭代器不会抛异常,不需要在迭代过程中加锁。

缺点

没有实现对Map加锁以提供独占访问

 

四、CopyOnWriteArrayList

每次修改时,都会创建并重新发布一个副本

 

五、阻塞队列和生产者与消费者模式

 

六、阻塞方法与中断方法

1、阻塞: 等待获得一个锁,等待从Thread.sleep方法中醒来,等待另一个线程的计算结果时,都可能会阻塞。wait 会释放锁,但sleep不会释放锁。

 

2、当中断时,会抛InterruptedException异常 ,可以调用Thread.currentThread().interrupt()方法,恢复中断状态

 

七、同步工具类

1、CountDownLacth (闭锁)

2、FutureTask

3、Semaphore(信号量)需要拿到许可

 

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    java并发容器CopyOnWriteArrayList实现原理及源码分析

    主要为大家详细介绍了java并发容器CopyOnWriteArrayList实现原理及源码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    JAVA并发容器代码随读1

    JAVA并发容器代码随读1

    并发容器的原理,7大并发容器详解、及使用场景

    并发容器的原理,7大并发容器详解、及使用场景。有兴趣的可以看下。

    14个Java并发容器,你用过几个?.docx

    不考虑多线程并发的情况下,容器类一般使用ArrayList、HashMap等线程不...上面提到的线程安全容器都在java.util.concurrent包下,这个包下并发容器不少,今天全部翻出来鼓捣一下。 仅做简单介绍,后续再分别深入探索。

    Java并发容器,底层原理深入分析

    ConcurrentHashMapConcurrentHashMap底层具体实现JDK1.7底层实现将数据分为一段一段的存储,然后给每一段数据配一把锁,当一个线程占用锁访问其中一个段数据时,其他段的数据也能被其他线程访问。...

    Java-并发容器之ConcurrentHashMap

    Java——并发容器之ConcurrentHashMap;Java——并发容器之ConcurrentHashMap;Java——并发容器之ConcurrentHashMap;Java——并发容器之ConcurrentHashMap;Java——并发容器之ConcurrentHashMap;Java——并发...

    基于Java并发容器ConcurrentHashMap#put方法解析

    下面小编就为大家带来一篇基于Java并发容器ConcurrentHashMap#put方法解析。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    《Java并发编程的艺术》

    《Java并发编程的艺术》内容涵盖Java并发编程机制的底层实现原理、Java内存模型、Java并发编程基础、Java中的锁、并发容器和框架、原子类、并发工具类、线程池、Executor框架等主题,每个主题都做了深入的讲解,同时...

    Java并发编程实战

    5.2 并发容器 5.2.1 ConcurrentHashMap 5.2.2 额外的原子Map操作 5.2.3 CopyOnWriteArrayList 5.3 阻塞队列和生产者-消费者模式 5.3.1 示例:桌面搜索 5.3.2 串行线程封闭 5.3.3 双端队列与工作密取 5.4 ...

    java并发编程与高并发处理.xmind

    java并发编程总结,为xmind格式,总结的很详细,包含常见的并发容器,锁等知识

    Java并发编程Xmind思维导图

    Java并发编程Xmind思维导图,思路更清晰。内容来自《Java并发编程的艺术》,包括并发机制底层原理、Java内存模型、Java并发编程基础、锁机制、线程池、并发工具类、原子操作类、并发容器和框架。纯手打,非诚勿扰。

    《Java并发编程的艺术》源代码

    第6章介绍了Java中的大部分并发容器,并深入剖析其实现原理,让读者领略大师的设计技巧。 第7章介绍了Java中的原子操作类,并给出一些实例。 第8章介绍了Java中提供的并发工具类,这是并发编程中的瑞士军刀。 第9章...

    Java 常见并发容器总结

    Java 常见并发容器总结 JDK 提供的这些容器大部分在 `java.util.concurrent` 包中。 - **`ConcurrentHashMap`** : 线程安全的 `HashMap` - **`CopyOnWriteArrayList`** : 线程安全的 `List`,在读多写少的场合性能...

    Java并发编程的艺术

    , 《Java并发编程的艺术》内容涵盖Java并发编程机制的底层实现原理、Java内存模型、Java并发编程基础、Java中的锁、并发容器和框架、原子类、并发工具类、线程池、Executor框架等主题,每个主题都做了深入的讲解,...

    java 并发学习总结

    java并发学习总结 例子:包含(并发容器、同步容器、同步工具、死锁、异常、中断、线程池、返回结果、同步方法等代码例子)

    并发容器和线程池,java并发编程3

    我们挑选出⼀些⽐较有代表性的并发容器 1 类,来感受⼀下JDK⾃带的并发集合带来的“快感”。 ConcurrentLinkedQueue是⼀个基于链接节点的⽆界线程安全队列,它采⽤先进先出的规则对节点 进⾏排序,当我们添加⼀个...

    Java并发编程与高并发解决方案之并发容器(J.U.C).docx

    Java并发编程与高并发解决方案之并发容器(J.U.C).docx

    龙果java并发编程完整视频

    第48节并发容器ConcurrentLinkedQueue原理与使用00:31:03分钟 | 第49节Java中的阻塞队列原理与使用00:26:18分钟 | 第50节实战:简单实现消息队列00:11:07分钟 | 第51节并发容器ConcurrentHashMap原理与使用00:38:...

Global site tag (gtag.js) - Google Analytics