学习笔记 2021.10.29

2021.10.29

什么是锁 锁的是什么!!?

并发

JUC

首先要了解的就是,JUC的含义就是java中自带的几个包,具体的位置定义如下

学习笔记 2021.10.29

而这几个包,自然也就是跟并发过程有关系。

一些基础知识:

进程和线程

Java是开不了线程的,是通过本地方法底层的c++实现,Java无法操作硬件。

并发和并行

多线程相关

wait和sleep的区别

  1. 来自不同的类,wait由object类提供,sleep由Thread类提供。
  2. 关于锁的释放,wait会释放锁,sleep不会。
  3. 使用的范围不同,sleep可以在任何地方使用。wait只能在同步代码块中使用。
  4. 是否需要捕获异常,wait不需要,sleep必须捕获异常。

传统syn锁

其他的没有什么多说的主要说明一个需要改变的习惯,即在真正的开发过程中要降低所写类的耦合性。

即线程就是一个单独的资源,没有任何的附属操作,其中就包含了必须的属性和方法即可。即像继承接口这种操作都是最好省略的,具体的继承重写的部分由lamda表达式去实现

学习笔记 2021.10.29

即大概是上图这种类型。

Lock接口

补充几个概念

公平锁和非公平锁

学习笔记 2021.10.29

公平锁即是非常公平,可以先来后到。

非公平锁即是允许插队的锁。

lock基本的操作模式

学习笔记 2021.10.29

同步和lock的区别

  1. 同步为java内部的关键字,lock是一个java类。
  2. 同步无法判断获取锁的状态,lock可以判断是否获取。
  3. 同步会自动释放锁,但是lock不会,自然可能会导致死锁。
  4. 同步适合锁少量的代码同步问题,lock适合锁大量的。
  5. 还有其他的如下:

学习笔记 2021.10.29

上一篇:[Warning] InnoDB: A long semaphore wait


下一篇:[转]nio学习-多路复用-epoll源码分析