张图说明下要分享的内容: 01. Lock接口 JUC包中的 Lock 接口支持那些语义不同(重入、公平等)的锁规则。所谓语义不同,是指锁可是有"公平机制的锁"、"非公平机制的锁"、"可重入的锁"等等。 "公平机制"是指"不同线程获取锁的机制是公平的", 而"非公平机制"则是指"不同线程获取锁的机制 ...
分类:
其他好文 时间:
2020-02-19 00:34:04
阅读次数:
71
前面我们看了可重入锁ReentrantLock,其实这个锁只适用于写多读少的情况,就是多个线程去修改一个数据的时候,适合用这个锁,但是如果多个线程都去读一个数据,还用这个锁的话会降低效率,因为同一时刻只能是一个线程去读取! 本次我们看看读写锁ReentantReadWriteLock,这个锁采用了读 ...
分类:
其他好文 时间:
2020-02-06 19:55:16
阅读次数:
60
一、CountDownLatch 场景:主线程需要等待所有子线程执行完毕后再进行汇总 CountDownLatch实现比较简单,继承AQS实现了一个不可重入共享锁Sync 1.不可重入共享锁Sync private static final class Sync extends AbstractQu ...
分类:
编程语言 时间:
2020-02-06 14:54:31
阅读次数:
89
经典笔试题: 1、自定义容器,提供新增元素(add)和获取元素数量(size)方法。2、启动两个线程。线程1向容器中新增10个数据。线程2监听容器元素数量,当容器元素数量为5时,线程2输出信息并终止。 package com.gaopeng.programming.test2; import jav ...
分类:
编程语言 时间:
2020-02-05 18:13:53
阅读次数:
86
1 可重入锁 可重入锁,也叫递归锁。它有两层含义,第一,当一个线程在外层函数得到可重入锁后,能直接递归地调用该函数,第二,同一线程在外层函数获得可重入锁后,内层函数可以直接获取该锁对应其它代码的控制权。之前我们提到的synchronized和ReentrantLock都是可重入锁。 通过ReEnte ...
分类:
编程语言 时间:
2020-02-02 14:04:05
阅读次数:
68
1 sleep 在哪里都可以用 调用Thread.sleep()但是 wait方法只能在同步方法和同步代码块中使用 wait也就是使得该线程成为阻塞状态(注意这里阻塞不是书本操作系统下的while循环实现的...我TM学傻了,这里阻塞特点1. 不耗cpu的等待;2. 线程安全;) 2.notify( ...
分类:
其他好文 时间:
2020-02-01 14:33:46
阅读次数:
87
公平锁/非公平锁 可重入锁 独享锁/共享锁 互斥锁/读写锁 乐观锁/悲观锁(实现秒杀的一种解决方案) (select * from product p where p.type=’xxxxx’ for update) 分段锁 偏向锁/轻量级锁/重量级锁 自旋锁 这些分类并不是全是指锁的状态,有的指锁 ...
分类:
编程语言 时间:
2020-01-30 21:13:57
阅读次数:
64
基础知识 __基础知识之一:锁的类型__ __ 锁就那么几个,只是根据特性,分为不同的类型 __ 锁的概念 锁的三个概念 类型一:公平锁/非公平锁 公平锁:ReentrantLock(构造为公平) 非公平锁:Synchronized,ReentrantLock(构造为非公平) 类型二:乐观锁/悲观锁 ...
分类:
编程语言 时间:
2020-01-28 21:09:10
阅读次数:
82
目录 "1. ReentrantLock简介" "2.ReentrantLock和synchronized的比较" "2.1 相同点" "2.2不同点" "3.ReentrantLock相比synchronized的额外功能" "3.1 ReentrantLock可以实现公平锁。" "3.2 .Re ...
分类:
其他好文 时间:
2020-01-28 20:58:58
阅读次数:
59
锁类型 锁根据其特性能够划分出各种各样的锁类型,该文主要介绍以下锁的作用及特性 1. 乐观锁/悲观锁 2. 独享锁/共享锁 3. 互斥锁/读写锁 4. 可重入锁 5. 公平锁/非公平锁 6. 分段锁 7. 偏向锁/轻量级锁/重量级锁 8. 自旋锁 乐观锁/悲观锁 乐观锁与悲观锁并不是特指某两种类型的 ...
分类:
编程语言 时间:
2020-01-24 17:17:42
阅读次数:
96