zoukankan      html  css  js  c++  java
  • Java并发工具包提供了哪些并发工具类

    通常我们所说的并发包也就是java.util.concurrent,集中了Java并发的各种工具类。

    同步结构

      CountDownLatch  允许一个或多个线程等待某些操作完成  CountDownLatch操作的是事件

      CyclicBarrier  一种辅助性的同步结构,允许多个线程等待到大某个屏障  CyclicBarrier侧重点是线程

      Semaphore  Java版本的信号量实现

      Phaser  功能与CountDownLatch很接近,允许线程动态的注册到Phaser上面,而CountDownLatch是不能动态设置的。

          设计初衷是实现多个线程类似步骤、阶段场景的协调,线程注册等待屏障条件出发,进而协调彼此间的行动,具体参考这个例子

    线程安全的容器

      ConcurrentHashMap、侧重于Map放入或者获取的速度,而不在乎顺序

      ConcurrentSkipListMap、在乎顺序,需要对数据进行非常频繁的修改

      CopyOnWriteArrayList  任何修改操作,如add、set、remove,都会拷贝原数组,修改后替换原来的数组,通过这种防御性的方式,实现另类的线程安全。

      CopyOnWriteArraySet

    各种并发队列的实现:如各种BlockedQueue实现,比较典型的ArrayBlockingQueue、SynchorousQueue或针对特定场景的PriorityBlockingQueue等。

    强大的Executor框架:可以创建各种不同类型的线程池,调度任务运行等,绝大部分情况下,不再需要自己从头实现线程池和任务调度器。

    并发包里提供的线程安全Map、List和Set。参考下面类图

    ConcurrentHashMap

    ConcurrentSkipListMap

    两个CopyOnWrite容器CopyOnWriteArrayList和CopyOnWriteArraySet

  • 相关阅读:
    MSP430程序库<二>UART异步串口
    MSP430程序库<五>SPI同步串行通信
    MSP430程序库<四>printf和scanf函数移植
    短信猫的实现(C#)类库开源啦
    短信猫软件的实现(C#)<十三>超长短信
    Linq to SQlite的使用
    MSP430程序库<三>12864液晶程序库
    查看Linux中自带的jdk ,设置JAVA_HOME
    [linux] vimrc
    [C#] socket demo
  • 原文地址:https://www.cnblogs.com/gujiande/p/9480004.html
Copyright © 2011-2022 走看看