内功加油站

面试加油站——第四期

ReentrantReadWriteLock和StampedLock 一、ReentrantReadWriteLock可重入读写锁 1、ReentrantReadWriteLock...
阅读更多
内功加油站

分布式锁的实现——Redis/Redisson

一、前言——在没有分布式锁之前,碰到的问题 1、我简单写了一个程序,以借助Redis实现减库存为例; 起始库存stock在redis中为1000个; 写一个简单的接口来减库存,首先...
阅读更多
多线程

线程池用过吗?ThreadPoolExecutor谈谈你的理解?

一、为什么用线程池?它的优势是什么? 线程池坐的主要工作是控制运行的线程的数量,处理过程中将任务放入队列(阻塞队列),然后在线程创建后启动这些任务,如果线程数量超过了最大数量超出的...
阅读更多
多线程

创建线程的三种方式及区别

为了便于后面自己手写线程池,我们必须对如何创建线程非常熟悉,尤其是实现Callable接口的方式; 创建线程共有3种方式: 继承Thread类 实现Runnable接口 实现Cal...
阅读更多
多线程

Synchronized锁和Lock锁有什么区别?

题目一:synchronized和Lock有什么区别?用新的Lock有什么好处?请举例说明。 1、原始构成:       &nbs...
阅读更多
多线程

生产者消费者模式的3种实现方式

名言警句: 线程操纵资源类; 判断、干活、唤醒通知; 严防多线程并发状态下的虚假唤醒; 一、生产者消费者模式的实现方式 在我们学习阻塞队列之前,要想实现生产者和消费者模式,共有两种...
阅读更多
多线程

堵塞队列知道吗?

堵塞队列:消息中间件MQ的底层核心原理 一、基本概念? 队列:排队,先到先得; 1、什么是堵塞队列? 顾名思义,首先它是一个队列,一个堵塞队列在数据结构中所起的作用大致如图所示: ...
阅读更多
多线程

CountDownLatch/CyclicBarrier/Semaphore使用过吗?

一、CountDownLatch(倒计时) 基本概念,是什么? 让一个线程await堵塞,直到另一些县城完成一系列操作后才被唤醒; CountDownLatch主要有2个方法:当一...
阅读更多
多线程

java 中锁你知道的有哪些?

JAVA中常见的锁,你知道的有哪些? 公平锁/非公平锁/可重入锁/递归锁/自旋锁/读写锁 等等;谈谈对各自的理解; 一、JAVA锁之公平锁和非公平锁 1、是什么? 公平锁:多个线程...
阅读更多
多线程

集合类不安全问题总结

一、集合类不安全问题之并发修改异常和写时复制处理方案 我们都知道ArrayList是线程不安全的,请编写一个不安全案例,并给出解决办法 package com.jigui...
阅读更多