多线程知识点概述

云中志

共 1187字,需浏览 3分钟

 ·

2021-11-14 12:15

前言

从今天开始,我们再次学习多线程的相关知识点,这一次的目的是希望能够更详细地梳理多线程相关知识,为日常开发找出更好的实践方向,本次关心的核心点有两个,一个是线程安全方面的内容,包括锁、原子类、CASC等,另一个是工具类相关的,包括线程池已经juc下面其他工具类。

今天我们主要是梳理多线程这块的技术点,为后续进阶学习做准备,好了,下面我们直接开始吧!

多线程

线程

首先是线程的基本知识,包括线程的基本概念、线程创建的方式、线程的状态等内容,同时,在这块我们会了解线程的常用方法,并显示各个方法的运行效果。

线程池

线程池这块主要是线程池的创建和使用。创建这块要熟悉线程池的构造参数,清楚各个参数的作用和具体用法;使用这块要清楚线程池的任务提交方式、拒绝策略等

常用组件

关键字

虽然synchronized关键字算是java的老关键字了,但是我还是不能恰到好处地使用这个关键字,所以这一次我会尽可能详细地探索synchronizevolatile的应用场景,找到更合理地应用场景

  • synchronized
  • volatile
  • final

volatile仅能实现变量的修改可见性,不能保证原子性;而synchronized则可以保证变量的修改可见性和原子性

原子类

原子类主要包括三块内容,一种是基本类型的原子类,比如boolean的、integer的、Long的,一种是这三种基本类型的数组,最后一种是引用类型的原子类。

另外还包括其他原子操作的组件,比如AccumulatorAdderFieldUpdater,不过这些实际开发中基本上用不到。

关于锁这块的内容,我们前面其实也讲过了,但当时只是简单剖析了读写锁和可重入锁,也都比较简单,这一次我希望能够更全面地了解java多线程的锁,所以会尽可能多探讨一些。

  • 可重入锁
  • 读写锁
  • StampedLock
  • Condition
常用组件

这一块主要包括多线程的常用组件,这里的内容除了LockSupport,其他的都分享过了,不过这一次我们还需要再次回顾下,既是回顾,也是为了查漏补缺、

其他组件

这一块的内容在上次学习的时候基本上没咋涉及到,所以这次应该会多分享一些。

  • Unsafe
  • 队列
  • Fork-Join方案
  • TimeUnit

结语

好了,以上就是我们本次重学java多线程的内容概要,从明天开始我就开始按照上面的内容进行更新学习,希望能够通过这一次的学习和梳理,对多线程有更深入的认知,同时也希望这个过程可以帮到各位小伙伴。

需要完整资料的小伙伴,可以在公众号后台回复【多线程】获取相关脑图,好了,大家晚安吧!

- END -


浏览 22
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报