队列与锁

  1. 云栖社区>
  2. Java技术进阶>
  3. 博客>
  4. 正文

队列与锁

carpediem123 2019-03-23 20:46:36 浏览713
展开阅读全文

 最近在阅读《多处理器编程艺术》一书,掌握了很多Java多线程的底层知识,现在就做一下书中链表-锁的作用一章的总结。

 为了节约你的时间,本文主要内容如下:

  • 带锁的链表队列
  • 细粒度同步
  • 乐观同步
  • 惰性同步
  • 非阻塞同步

粗粒度同步

 所谓粗粒度同步其实很简单,就是在List的add,remove,contains函数的开始就直接使用Lock加锁,然后在函数结尾释放。

add函数的代码如下所示,函数的主体就是链表的遍历添加逻辑,只不过在开始和结束进行了锁的获取和释放。

private Node head;
private Lock lock = new ReentrantLock();
public boolean add(T item) {
    Node pred, curr;
    int key = item.hashCode();
   

网友评论

登录后评论
0/500
评论
carpediem123
+ 关注
所属云栖号: Java技术进阶