java callback 多线程_Java并发多线程 - 并发工具类JUC

安全共享对象策略

1.线程限制 : 一个被线程限制的对象,由线程独占,并且只能被占有它的线程修改

2.共享只读 : 一个共享只读的对象,在没有额外同步的情况下,可以被多个线程并发访问,

但是任何线程都不能修改它

3.线程安全对象 : 一个线程安全的对象或则容器,在内部通过同步机制来保证线程安全,

所以其他线程无需额外的同步就可以通过公共接口随意访问它

4.被守护对象 : 被守护对象只能通过获取特定的锁来访问

线程安全 - 同步容器

采用synchronized关键字同步,缺点 :

不能完成做到线程安全

性能差

ArrayLisy -> Vector, Stack

HashMap -> HashTable (key、value不能为null)

Collections.synchronizedXXX(List、Set、Map)

线程安全 - 并发容器 J.U.C

ArrayList -> CopyOnWriteArrayList

HashSet、TreeSet -> CopyOnWriteArraySet ConcurrentSkipListSet

HashMap、TreeMap -> ConcurrentHashMap ConcurrentSkipListMap

AbstractQueuedSynchronizer - AQS

使用Node实现FIFO队列,可以用于构建锁或则其他同步装置的基础框架

利用一个int类型表示状态

使用方法是基础

子类通过继承并通过实现它的方法管理其状态 { acquire 和 release} 的方法操纵状态

可以同时实现排他锁和共享锁模式(独占、共享)

常用类

CountDownLatch

Semaphore

CyclicBarrier

ReentrantLock

Condition

FutureTask

CountDownLacth

CountDownLatch是一个同步工具类,它允许一个或多个线程一直等待,直到其他线程执行完后再执行。例如,应用程序的主线程希望在负责启动框架服务的线程已经启动所有框架服务之后执行。

CountD

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值