cool 😎 blog

??子标题


  • Home

  • Archives

  • Tags

  • About

java多线程(5)-ConcurrentLinkedQueue

Posted on 2021-06-03 | In programmer |
Words count in article 2653

若图片有问题,请点击此处查看

本文开始介绍并发队列,为后面介绍线程池打下基础。并发队列莫非也是出队、入队操作,还有一个比较重要的点就是如何保证其线程安全性,有些并发队列保证线程安全是通过lock,有些是通过CAS。 我们从ConcurrentLinkedQueue开始吧。

1. 介绍

ConcurrentLinkedQueue是集合框架的一员,是一个无界限且线程安全,基于单向链表的队列。该队列的顺序是FIFO。当多线程访问公共集合时,使用这个类是一个不错的选择。不允许null元素。是一个非阻塞的队列。

Read more »

java多线程(4)-ReentrantReadWriteLock的探索

Posted on 2021-05-30 | In programmer |
Words count in article 3925

1. 介绍

本文我们继续探究使用AQS的子类ReentrantReadWriteLock(读写锁)。老规矩,先贴一下类图 ReentrantReadWriteLock结构图 ReentrantReadWriteLock这个类包含读锁和写锁,这两种锁都存在是否公平的概念,这个后面会细讲。

此类跟ReentrantLock类似,有以下几种性质:

  • 可选的公平性政策
  • 重入,读锁和写锁同一个线程可以重复获取。写锁可以获取读锁,反之不能
  • 锁的降级,重入还可以通过获取写锁,然后获取到读锁,通过释放写锁的方式,从而写锁降级为读锁。 然而,从读锁升级到写锁是不可能的。
  • 获取读写锁期间,支持不可中断
Read more »

java多线程(3)-ReentrantLock

Posted on 2021-05-24 | In programmer |
Words count in article 1749

上节,我们讲了AQS的阻塞与释放实现原理,线程间通信(Condition)的原理。这次,我们就讲讲基于AQS实现的ReentrantLock(重入锁)。

Read more »

java多线程(2)-AQS

Posted on 2021-05-21 | In programmer |
Words count in article 6998

AQS(AbstractQueuedSynchronizer), 可以说的夸张点,并发包中的几乎所有类都是基于AQS的。

一起揭开AQS的面纱

Read more »

java多线程(1)-进程与线程

Posted on 2021-05-13 | In programmer |
Words count in article 255

进程与线程

进程,代码在数据结构上的一次活动,系统的资源调度与分配的最小单位, 每个进程的内存资源不同。也可以理解为一个任务,打开word,打开浏览器….word,里面又有很多子功能,每个功能可以理解为线程,处理不同的事情。

线程,不同的线程共享 相同 的进程的资源。CPU的资源是被线程所使用,所以,可以说线程是CPU分配资源的最小单位。

  • 线程是进程运行的一条路径。

打开word就是新执行一个进程, word里的功能,例如: 保存、拼写检查、字数的累计…,都可以理解为一个线程。


博客将开启并发的大门,虽然之前零零散散也学习过,但都没有写成博客。今天刚看完了 《Java并发编程之美》, 后面会把一些整理的读书笔记写成博客。🎉🎉🎉

Read more »
1 2 3 … 6
ukyu

ukyu

纵浪大化中,不喜亦不惧

28 posts
2 categories
18 tags
Email Twitter
值得一看的博客
  • 小米信息部技术团队
  • 美团技术团队
  • Martin Fowler
  • 左子祯(设计师)
  • 雷军的博客
© 2020 - 2025 ukyu