08_张孝祥_多线程_java5原子性操作类的应用

并发库

java.util.concurrent在并发编程中很常用的实用工具类。

java.util.concurrent
             |----atomic: 小工具包,支持在单个变量上解除锁的线程安全编程。
                  可以对基本类型、数组中的基本类型、类中的基本类型等进行操作
                          |----AtomicBoolean
                          |----AtomicInteger
                          |----AtomicIntegerArray
                          |----AtomicIntegerFieldUpdater
                          |----AtomicLong
                          |----AtomicLongArray
                          |----AtomicLongFieldUpdater
                          |----AtomicMarkableReference
                          |----AtomicReference
                          |----AtomicReferenceArray
                          |----AtomicReferenceFieldUpdater
                          |----AtomicStampedReference
             |----locks: 为锁和等待条件提供一个框架的接口和类
                          |----AbstractOwnableSynchronizer
                          |----AbstractQueuedLongSynchronizer
                          |----AbstractQueuedSynchronizer
                          |----Condition
                          |----Lock
                          |----LockSupport
                          |----ReadWriteLock
                          |----ReentrantLock
                          |----ReentrantReadWriteLock
             |----AbstractExecutorService
             |----ArrayBlockingQueue
             |----BlockingDeque
             |----BlockingQueue
             |----BrokenBarrierException
             |----Callable
             |----CancellationException
             |----CompletionService
             |----ConcurrentHashMap
             |----ConcurrentLinkedDeque
             |----ConcurrentLinkedQueue
             |----ConcurrentMap
             |----ConcurrentNavigableMap
             |----ConcurrentSkipListMap
             |----ConcurrentSkipListSet
             |----CopyOnWriteArrayList
             |----CopyOnWriteArraySet
             |----CountDownLatch
             |----CyclicBarrier
             |----Delayed
             |----DelayQueue
             |----Exchanger
             |----ExecutionException
             |----Executor
             |----ExecutorCompletionService
             |----Executors
             |----ExecutorService
             |----ForkJoinPool
             |----ForkJoinTask
             |----ForkJoinWorkerThread
             |----Future
             |----FutureTask
             |----LinkedBlockingDeque
             |----LinkedBlockingQueue
             |----LinkedTransferQueue
             |----Phaser
             |----PriorityBlockingQueue
             |----RecursiveAction
             |----RecursiveTask
             |----RejectedExecutionException
             |----RejectedExecutionHandler
             |----RunnableFuture
             |----RunnableScheduledFuture
             |----ScheduledExecutorService
             |----ScheduledFuture
             |----ScheduledThreadPoolExecutor
             |----Semaphore
             |----SynchronousQueue
             |----ThreadFactory
             |----ThreadLocalRandom
             |----ThreadPoolExecutor
             |----TimeoutException
             |----TimeUnit
             |----TransferQueue

参考

java5原子性操作类的应用(八)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你好!对于多线程编程,ThreadLocal是一个非常有用的工具。它提供了线程本地变量的机制,使得每个线程都可以独立地存储和获取自己的变量副本。这在一些场景下非常有用,下面是一些ThreadLocal应用技巧: 1. 线程上下文信息传递:在多线程环境中,有时需要在线程之间传递一些上下文信息,例如用户身份认证信息、语言环境等。使用ThreadLocal可以很方便地实现这一目的,每个线程都有自己独立的上下文信息副本,互不干扰。 2. 线程安全的数据存储:在多线程环境中,如果多个线程需要共享一份数据,可以使用ThreadLocal来维护每个线程的局部副本。这样每个线程都可以独立地修改自己的副本,而不会影响其他线程的数据。 3. 避免传参:有些情况下,我们需要在多个方法之间传递某些参数,但是参数传递会增加代码复杂性。使用ThreadLocal可以避免传参,每个方法可以直接从ThreadLocal中获取需要的参数值。 4. 事务管理:在一些事务场景中,我们可能需要在同一个线程中执行多个数据库操作,并保证这些操作在同一个数据库事务中。使用ThreadLocal可以在线程中维护一个数据库连接对象,确保多个操作都使用同一个连接,实现事务的一致性。 需要注意的是,ThreadLocal虽然提供了线程本地变量的机制,但并不是万能的解决方案。在使用ThreadLocal时,需要注意内存泄漏的问题,及时清理不再使用的资源。 希望以上内容对您有帮助!如需了解更多多线程编程相关内容,可以参考CSDN中张孝祥的相关文章。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值