V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
amiwrong123
V2EX  ›  程序员

写了一个系列的文章--JUC 框架源码解析系列文章

  •  6
     
  •   amiwrong123 · 2021-01-11 21:34:30 +08:00 · 2413 次点击
    这是一个创建于 1414 天前的主题,其中的信息可能已经有所发展或是发生改变。

    来 v 站也一年多了,很喜欢与 v 友们交流技术,只是很后悔没有早点来 v 站(工作后才知道 v 站),要是早点来,可能我的路子会走得更好(话题扯远了)。

    去年有段时间对 JUC 框架很感兴趣,就花了几个月时间来阅读了它们的源码。期间也是来过 v 站发过很多帖子来询问。

    本人属于比较笨的那种,一个概念如果不是由浅入深、循序渐进的方式讲解就可能搞不懂,所以我写的博客也会很具体,很多细节会去看,所以我觉得我的博客也会比较好懂(王婆卖瓜~)。

    写完这个系列确实收获很大,唯一的遗憾是没有时间去看 forkjoinpool 的源码了。在这里把文章分享给大家,希望和大家多多交流。尤其对 AQS 讲解得很细致,把 AQS 分为了四部分循序渐进得进行了讲解(之前也看了这位大佬的博客 https://segmentfault.com/a/1190000016058789 ,他写的很好,对我启发很大,也向大家推荐)。

    大家也不要吐槽我在 csdn 写博客哈。下面放干货:

    JUC 框架 源码解析系列文章目录 JDK8

    JUC 框架的基础是 CAS 和自旋,而 CAS 则是利用Unsafe类提供的 CAS 操作,而原子类则依靠于 CAS 和自旋。下面几篇文章从源码分析 JUC 框架内的几个重要的原子类。

    ThreadLocal 本身不在 JUC 框架之中,但它却是一种防止多线程竞争的重要手段。

    AQS ( AbstractQueuedSynchronizer )向下依赖了 CAS 和自旋,向上则提供了一个同步队列的实现,许多 JUC 框架内中的类都直接使用了 AQS 作为内部类。下面几篇文章将从 AQS 提供的几种功能进行深度分析。

    AQS 中有些函数的具体实现细节,并不是很容易让人理解,这些地方一般都是因为考虑了同步队列变化中的中间状态。

    JUC 框架中有些同步构件依赖了 AQS 作为实现底层,我们一般使用它们来做到多线程之间的协作。

    JUC 框架中也提供了各种用途的集合类。

    最后部分将讲解线程池相关源码。

    PS:如果看了觉得真有帮助,可以帮忙投个票吗,https://bss.csdn.net/m/topic/blog_star2020/detail?username=anlian523

    第 1 条附言  ·  2021-01-12 10:07:28 +08:00
    PSS:帖子最后一个链接是 csdn 的活动:2020 博客之星。

    现在第一名已经至少 400 多票了(昨天看的)。我没什么奢望,只要能有个前 20 名就好了,因为前 20 名就可以有一本 异步社区的书籍。所以各位大佬看完干货后觉得还可以的话,可以麻烦投个票嘛,真的谢谢啦。(虽然只是一本书而已~但可以稍稍满足一下我的虚荣心,哈哈哈哈~)
    第 2 条附言  ·  2021-01-12 14:32:33 +08:00
    投票太激烈了( http://bytedemo.com/getStatistics 手机上可以点开),第一名 1000 多,第 20 名都有 255 票,而且每天都可以投票。大家这么能拉票的吗[手动笑哭]
    估计这本书难拿到了,一切随缘了~喜欢的朋友也可以去博客留下足迹,哈哈~
    6 条回复    2021-01-12 15:33:03 +08:00
    yaocai321
        1
    yaocai321  
       2021-01-11 23:07:01 +08:00
    给你一个大大的赞~
    sprit
        2
    sprit  
       2021-01-12 09:15:02 +08:00
    爱了爱了
    zifangsky
        3
    zifangsky  
       2021-01-12 09:58:18 +08:00
    简单看了一篇,看起来写得挺好的,后续有时间会好好拜读你的文章。另外,已经给你投票了。
    zyfsuzy
        4
    zyfsuzy  
       2021-01-12 10:27:59 +08:00
    可以
    yamasa
        5
    yamasa  
       2021-01-12 11:18:10 +08:00
    支持支持
    fangcan
        6
    fangcan  
       2021-01-12 15:33:03 +08:00
    还没具体看内容,看帖子感觉不错 支持
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1600 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 16:58 · PVG 00:58 · LAX 08:58 · JFK 11:58
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.