【JUC —— 01 JUC介绍】

Java JUC(Java Util Concurrent)是Java提供的一套用于并发编程的工具包,它提供了许多类和接口来简化和优化多线程编程。JUC主要包括并发集合、同步工具、执行器框架、锁机制等。

主要组件和功能

1. 并发集合(Concurrent Collections)

并发集合是线程安全的集合类,允许多个线程同时进行读写操作。

  • ConcurrentHashMap:高效的线程安全哈希表。
  • CopyOnWriteArrayList:适用于读多写少的场景,写操作会创建一个新的副本。
  • ConcurrentLinkedQueue:基于链接节点的无界线程安全队列。
2. 同步工具(Synchronizers)

同步工具用于协调多个线程之间的相互协作。

  • CountDownLatch:允许一个或多个线程等待其他线程完成操作。
  • CyclicBarrier:让一组线程到达某个屏障(同步点)时被阻塞,直到最后一个线程到达屏障时,屏障才会打开。
  • Semaphore:控制同时访问某个资源的线程数量。
  • Exchanger:让两个线程在某个点交换数据。
3. 执行器框架(Executor Framework)

执行器框架提供了一种更好的方式来管理线程池和任务执行。

  • Executor:基础接口,表示一个执行任务的对象。
  • ExecutorService:扩展了Executor,添加了管理终止和任务集管理的方法。
  • ScheduledExecutorService:支持任务的定时和周期性执行。
  • Executors:工厂类,用于创建不同类型的线程池,如FixedThreadPoolCachedThreadPoolScheduledThreadPool等。
4. 锁机制(Locks)

提供了比synchronized关键字更灵活的锁定机制。

  • ReentrantLock:一个可重入锁,提供了更多的操作选项,如公平锁和非公平锁。
  • ReadWriteLock:读写锁,允许多个读线程同时访问,但写线程独占访问。
  • StampedLock:包含乐观读的读写锁。
5. 原子变量(Atomic Variables)

原子变量提供了一种在多线程环境下无锁的方式进行变量操作。

  • AtomicIntegerAtomicLongAtomicBoolean:基本类型的原子类。
  • AtomicReferenceAtomicStampedReferenceAtomicMarkableReference:引用类型的原子类,支持复杂的并发操作。
  • 13
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值