并发编程

并发编程百科全书
1、JVM层面分析线程
在这里插入图片描述

2、JVM各内存区意义
在这里插入图片描述

3、为什么要使用多线程以及带来的问题
在这里插入图片描述

4、线程的状态
在这里插入图片描述
在这里插入图片描述

5、Java中创建线程的方式
在这里插入图片描述

5.1.通过实现Runnable接口创建线程
在这里插入图片描述

5.2 通过实现Callable接口创建线程
在这里插入图片描述

5.3 通过继承Thread类创建线程
在这里插入图片描述

5.4通过线程池启动多线程
5.4.1 使用线程池创建线程的几种方式

在这里插入图片描述
在这里插入图片描述

5.4.2 线程池比自己创建线程的好处
在这里插入图片描述

5.4.3 Executor VS ExecutorService VS Executors
在这里插入图片描述

6、并发-Feature接口
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7、线程上下文切换
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

8、Synchronized用法
在这里插入图片描述

8.1修饰一个代码块
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

8.2修饰一个方法

在这里插入图片描述
在这里插入图片描述

8.3修饰静态方法
在这里插入图片描述

8.4 修饰类
在这里插入图片描述

9、死锁
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

10、sleep() 与 wait()区别
一、sleep()属于Thread类的。 而wait()方法,则是属于Object类中的
二、sleep()方法导致了程序暂停执行指定的时间,让出cpu给其他线程,但是他的监控状态依然保持着,当指定的时间到了又会自动恢复运行状态。
三、在调用sleep()方法的过程中,线程不会释放对象锁。
四、而当调用wait()方法的时候,线程会放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象调用notify()或notifyAll()方法后本线程才进入对象锁定池准备(就绪)
获取对象锁进入运行状态。

在这里插入图片描述
在这里插入图片描述

11、线程间通信
一、Synchronized
二、共享内存
三、Wait() / notify()
在这里插入图片描述

四、消息队列
五、CountDownLatch类的countDown() 以及 await()方法
六、JAVA并发包下的Exchanger类exchange(data)方法
12、LOCK
在这里插入图片描述

12.1 常用方法
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

12.2 ReentrantLock可重入锁
在这里插入图片描述

12.2.1 与synchronized区别
在这里插入图片描述

12.2.2 使用
12.2.2.1 简单使用
在这里插入图片描述

12.2.2.2 公平锁使用
在这里插入图片描述

上例也是可重入锁的体现。 线程A都获取了锁,其他线程还可以获取,前提是各线程用同一lock,这点与synchronized常用的对象锁不同, Lock是不管你是否用什么对象,只要用同一lock就行;类似的,如果每个线程使用不同lock,则执行顺序是线程A获取锁→线程A释放锁→线程B获取锁→线程B释放锁……,不同锁,你们重入不了。
12.2.2.3 可中断锁使用
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

12.2.2.4 trylock()
trylock()类似。 就是等待之后,释放锁, 参考上文trylock()介绍。
12.3、ReadWriteLock 接口
注意:ReadWriteLock并不继承Lock接口
在这里插入图片描述

13、CAS (Compare And Swap)
在这里插入图片描述
在这里插入图片描述

13.1 demo
在这里插入图片描述
在这里插入图片描述

13.2 CAS 原理图
在这里插入图片描述

13.3 CAS缺点
在这里插入图片描述

14、Voliate 关键字
14.1内存模型相关概念
在这里插入图片描述
在这里插入图片描述

14.2 JAVA内存模型(JMM)对并发的控制
在这里插入图片描述

14.3 并发编程三个概念(原子性、可见性、有序性)
14.3.1 原子性
在这里插入图片描述

14.3.2 可见性
在这里插入图片描述

14.3.3 有序性

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

14.4 Voliate
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值