Java并发包小结

1、Lock

    Lock功能对应关键字synchrozied功能,lock和unlock方法用于加锁和释放锁。等待锁的线程加入到等待链表中,同时阻塞线程,锁释放时,从等待链表中取出等待的线程执行,取等待的线程分公平与非公平两种方式,公平方式取第一个等待的线程,非公平方式当前正在获取锁的线程可能立刻执行,而不用加入到等待队列中,排队执行。

2、Condition

    Condition的await和singal方法对应Object的wait和notify方法,JDK中阻塞队列使用Condition实现,使用两个Condition对象,分别是notFull和notEmpty,协调阻塞集合的存取操作。

3、LinkedBlockQueue  ArrayBlockQueue

    LinkedBlockQueue基于链表实现,不用一开始就分配一块空闲的内存空间,因此适合用于不确定集合大小的情况,避免预先分配内存,初始化时可以不指定队列大小,默认为Integer.MAX_VALUE,指定大小后不可以扩容。

    ArrayBlockQueue基于数组实现,构造参数至少有初始容量这个参数,指定容量后不可扩容,同时会预先分配内存空间。

4、DelayQueue

    DelayQueue用于把需要延迟处理的数据存放到集合中,比如订单超时后取消订单,不用定时任务定时轮询。业务线程把延迟数据添加到DelayQueue中,另外一个线程从队列中poll数据,如果数据时间没有到期,返回Null,只有到期后才返回。

 

待补充...

转载于:https://my.oschina.net/u/855597/blog/2120218

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值