JUC(java.util.concurrent)简介说明

麦迪 Java教程 发布时间:2023-12-17 22:20:07 阅读数:13746 1
下文笔者讲述java之JUC简介说明,如下所示

JUC简介

 
JUC
   在Java 5.0添加的java.util.concurrent包的简称
   包含在rt.jar中
  它为了更好的支持高并发任务
   让开发者利用这个包进行的
    多线程编程时可以有效的减少竞争条件和死锁线程

JUC组成

JUC由以下5部分组成

1.tools 工具类

CountDownLatch:
    闭锁
     是一个同步辅助类
          在完成一组正在其他线程中执行的操作之前
         它允许一个或多个线程一直等待
CyclicBarrier:
        栅栏
     一个同步辅助类
        允许一组线程互相等待
        直到到达某个公共屏障点
       并且在释放等待线程后可以重用
Semaphore:
     信号量
     是一个计数信号量
     它的本质是一个“共享锁“
     信号量维护了一个信号量许可集
     线程可以通过调用 acquire()来获取信号量的许可;
     当信号量中有可用的许可时,线程能获取该许可;
     否则线程必须等待,直到有可用的许可为止
    线程可以通过release()来释放它所持有的信号量许可

2.atomic原子性包

 有AtomicBoolean、AtomicInteger、AtomicIntegerArray等原子变量类
  他们的实现原理大多是持有它们各自的对应的类型变量value
  volatile关键字修饰
    这样来保证每次一个线程要使用它都会拿到最新的值

3.locks锁包

JDK提供的锁机制
   相比synchronized关键字来进行同步锁
    功能更加强大
    它为锁提供了一个框架
    该框架允许更灵活地使用锁包含的实现类
   有:

ReentrantLock:
  它是独占锁
    指只能被独自占领
    即同一个时间点只能被一个线程锁获取到的锁。

ReadWriteLock:
   它包括子类ReadLock和WriteLock
   ReadLock是共享锁
      WriteLock是独占锁 

LockSupport:
     具备阻塞线程和解除阻塞线程的功能
    并且不会引发死锁。

4.collections并发集合包

ArrayBlockingQueue 阻塞队列
CopyOnWriteArraylist 并发ArrayList, 读多写少场景
CopyOnWriteArraySet,ConcurrentSkipListSet并发HashSet,TreeSet
ConcurrentHashMap,ConcurrentSkipListMap并发HashMap,TreeMap

5.Executor 执行者

Java里面线程池的顶级接口
    它只是一个执行线程的工具
     真正的线程池接口是ExecutorService

FixedThreadPool
  线程固定
    无界缓冲队列
    适用于任务数量不均匀,对内存压力不敏感的场景
CacheThreadPool 
  不限线程数,适用于短时间要求低延迟的任务场景
SingleThreadPool 
   适用于异步执行顺序的场景
ScheduleThreadPool 
   支持固定频率和固定延迟的场景 
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaCourse/202312/7479.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者