![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
容器和并发
文章平均质量分 87
春暖花开QAQ
这个作者很懒,什么都没留下…
展开
-
并发关键字
1、并发关键字synchronized在java中,synchronized关键字是用来控制线程同步的,就是在多线程的环境下,控制synchronized代码段不被多个线程同时执行。synchronize可以修饰类,方法,代码块,在早起版本,属于重量级锁。2、synchronized关键字的三种使用方法synchronized关键字加到实例方法上是给对象加锁。synchronized关键字加到static静态方法是给class类加锁。synchronized关键字修饰代码块上,就可以给对象sy原创 2021-11-27 22:01:52 · 3624 阅读 · 0 评论 -
线程池来了
1、线程池的核心属性有哪些newFixedThreadPool:固定大小的线程池,每次提交一个任务就创建一个线程,直到达到最大线程数。一旦达到最大池就不会改变,如果有一个线程执行异常结束,线程池会补充一个新线程。newCachedThreadPool:创建一个可缓存的线程池。如果线程池大小超过需要处理线程的数量,那么就会回收空闲的线程。任务增加时,线程池会创建新的线程。线程池不会限制数量大小,完全依赖于JVM能够创建的最大线程大小。newSingledThreadExecutor: 创建一个单线程话原创 2021-11-27 17:49:12 · 143 阅读 · 0 评论 -
CAS和AQS
1、CAS是乐观锁,在concurrentHashmap中的putval方法中会用到CAS非阻塞的实现CAS:CAS指令需要3个操作数,分别是内存地址(在JAVA中理解为变量的内存地址,用V表示),旧的预期值(用A表示),新值(B)。CAS指令执行时,当且仅当V处的值符合旧预期值A时,处理器用B更新A值,否则它就不执行更新,但是无论是否更新了V处的值,都会返回V的旧值,上述的处理过程是一个原子操作。CAS缺点 :ABA问题:因为CAS需要在操作值的时候检查下值有没有发生变化,如果没有发生变化则更新,但是原创 2021-11-27 21:06:12 · 3155 阅读 · 0 评论 -
线程创建的方式
1、什么是进程,什么是线程,进程与线程的区别和联系?(1)进程是操作系统资源分配和管理的基本单位,而线程是处理器任务调度和执行的基本单位。一个进程里可以有多个线程,线程也被称为轻量级进程。区别(1)进程之间的地址空间和资源是独立的,而同一线程共享本地进行的空间和资源(2)一个进程奔溃之后,不会对其他进程产生影响,但是一个线程奔溃之后,整个进程都会死掉。(3)线程执行开销比较小。2、什么是并行,什么是并发并发:同个时间段,多个任务都在执行,但不一定同时执行。并行:多个任务在单位时间内同时进行原创 2021-11-27 15:15:40 · 286 阅读 · 0 评论 -
java集合
1、List、set、map三者的区别(1)List(对付顺序的好帮手):存储的元素是有序的,可重复的(2)set(注重独一无二的性质):存储的元素是无序的,不可重复的(3)map(用key搜索的专家):使用键值对存储,key是无序的,不可重复的,value是无序的,可重复的,每个键最多映射一个值2、ArrayList和LinkedList的区别(1)是否保证线程安全:两个都是线程不同步的,也就都不保证线程安全。(2)底层数据结构:ArrayList底层使用的是Object数组,LinkedLi原创 2021-06-20 21:17:43 · 1013 阅读 · 0 评论