Java并发和多线程-JUC工具类-CyclicBarrier

带着BAT大厂的面试问题去理解 什么是CyclicBarrier? CyclicBarrier底层实现原理? CountDownLatch和CyclicBarrier对比? CyclicBarrier的核心函数有哪些? CyclicBarrier适用于什么场景? CyclicBarrier简介对于CountDownLatch,其他线程为游戏玩家,比如英雄联...

阅读全文

MySQL-数据库事务及InnoDB的事务、MVCC

数据库事务ACID特性原子性(atomicity,或称不可分割性)一致性(consistency)隔离性(isolation,又称独立性)持久性(durability) 标准事务的隔离级别 读未提交 read-uncommitted 允许读取尚未提交的数据变更,可能会导致脏读、幻读或不可重复读。 事务对当前被读取的数据不加锁; 事务在更新某数据的瞬间...

阅读全文

Java并发和多线程-JUC工具类-Semaphore

Semaphore底层是基于AbstractQueuedSynchronizer来实现的。Semaphore称为计数信号量,它允许n个任务同时访问某个资源,可以将信号量看做是在向外分发使用资源的许可证,只有成功获取许可证,才能使用资源。 带着BAT大厂的面试问题去理解 什么是Semaphore? Semaphore内部原理? Semaphore常用方法有哪些...

阅读全文

MySQL-存储引擎及InnoDB详解

MySQL存储引擎一个库中可以有多个不同存储引擎的表。 InnoDB和MyISAM数据库的表的结构定义信息都存储在frm文件中。InnoDB的数据和索引存储在ibd文件中(聚集),MyISAM索引存在MYI文件中,数据存储在MYD文件中(非聚集)。 Innodb若一个主键被定义,该主键则作为密集索引;若没有主键被定义,该表的第一个唯一非空索引则作为密集索...

阅读全文

Java并发和多线程-JUC工具类-CountDownLatch

带着BAT大厂的面试问题去理解 什么是CountDownLatch? CountDownLatch底层实现原理? CountDownLatch一次可以唤醒几个任务? 多个 CountDownLatch有哪些主要方法? await(),countDown() CountDownLatch适用于什么场景? 写道题:实现一个容器,提供两个方法,add,size 写...

阅读全文

Java并发和多线程-JUC原子类

CASCAS的全称为Compare-And-Swap,直译就是对比交换。是一条CPU的原子指令,其作用是让CPU先进行比较两个值是否相等,然后原子地更新某个位置的值。经过调查发现,其实现方式是基于硬件平台的汇编指令,就是说CAS是靠硬件实现的,JVM只是封装了汇编调用,那些AtomicInteger类便是使用了这些封装后的接口。   简单解释:CAS操作需要...

阅读全文

消息队列——RocketMQ

https://zhuanlan.zhihu.com/p/48816137 https://www.zhihu.com/question/449611434/answer/1824707689

阅读全文

Netty

Netty是一个高性能、异步事件驱动的NIO框架,提供了对TCP、UDP和文件传输的支持。作为一个异步NIO框架,Netty的所有IO操作都是异步非阻塞的,通过Future-Listener机制,用户可以方便的主动获取或者通过通知机制获得IO操作结果。 新手入门:目前为止最透彻的的Netty高性能原理和框架架构解析 基础 核心组件 Bootstrap、Se...

阅读全文

Spring-IOC-实现原理详解-初探

IOCBean是如何注册到IOC容器中的xml配置文件方式下Bean的注册123456789101112public ClassPathXmlApplicationContext( String[] configLocations, boolean refresh, @Nullable ApplicationContext parent) throw...

阅读全文

Java并发和多线程-ThreadLocal

ThreadLocal是通过线程隔离的方式防止任务在共享资源上产生冲突, 线程本地存储是一种自动化机制,可以为使用相同变量的每个不同线程都创建不同的存储。 QA 什么是ThreadLocal? 用来解决什么问题的? 说说你对ThreadLocal的理解 ThreadLocal是如何实现线程隔离的? 主要是用到了Thread对象中的一个ThreadLoca...

阅读全文