CountDownLatch 线程开关 AQS 共享锁 CountDownLatch内聚了AQS,重写了共享锁获取和释放的方法,可以实现作为线程启动,线程结束的信号,并发编程的好帮手。通过源码分析和几个小例子讲解CountDownLatch。
Java Lock锁介绍(可重入锁,独占锁,共享锁,锁降级)AbstractQueuedSynchronizer AQS源码解读 (可重入锁,独占锁,共享锁,锁降级)AbstractQueuedSynchronizer AQS源码解读
JMM内存模型-包括(指令重排序,volatile完整语义,happens-before原则等,带图) 记录下自己对JMM的总结,包括重排序;特殊关键字volatile、final的语义;happens-before原则等
Java 并发编程synchronized 详解带转换流程图(偏向锁,轻量级锁,重量级锁,自适应自旋等详解) 1.synchronized锁的对象 2.jdk1.6引入的偏向锁,轻量级锁,自适应自旋介绍。
Spring Boot Caused by: java.io.IOException: The temporary upload location 异常解决方案 Spring Boot Caused by: java.io.IOException: The temporary upload location 异常解决方案
Spring Bean生命周期详解-从Bean转化为BeanDefinition到Bean的销毁全过程 Spring Bean生命周期说明基于最新版(5.2.5.RELEASE),从BeanDefinition的注册到Bean的销毁全过程
Spring mvc解决list最大长度为256的限制 添加@InitBinderpublic void initBinder(WebDataBinder binder) { binder.setAutoGrowCollectionLimit(3600); //最大支持3600个好友}就好
MySQL一条更新语句是怎么执行的呢? 来分析下一个简单的update语句,update T set i = i + 1 where id = 100一、锁 Innodb引擎引擎支持表锁和行级锁的,id是主键,这时候只会锁住id=100这行数据,其他线程更新的话就要等到当前线程将锁释放掉。锁不是在事务开始的时候就获取,而是真正执行这条更新语句的时候才会获取锁,执行完也不会立即释放锁资源,而是事务提交的时候才会释放。如果...
MySQL有哪些模块 MySQL分为连接器,分析器,优化器,执行器,还有相应的引擎层。 1. 连接器 负责管理MySQL的连接,为每个连接返回相应的权限,连接建立好之后再对这个用户的权限进行修改,对用用户的连接是感知不到的,下次连接时才会生效。 2.分析器 负责分析相应的语法是否符合规范,MySQL内部的表名,列的字段都有...
Redis入门 Redis特性速度快1. 因为Redis所有的数据都是放在内存中的2. Redis是用c语言编写的,当然越接近操作系统底层,执行速度会相对较快3. Redis采用单线程的架构,预防了多线程可能产生的竞争问题 2.数据类型包括字符串,哈希,列表,集合,有序集合 3.功能1. 提供了键过期功能,可以实现缓存2. 提供了发布订阅功能,可以实现消息系统...
浅谈Web请求过程 一、B/S架构 客户端使用统一的浏览器,简化了前端和后端的开发难度。底层都是基于HTTP协议,常见的Http服务器有Apache,IIS,Tomcat,JBoss等。二、关于HTTP请求如何发起一个HTTP请求? 和建立Socket连接一样,OutputStream.wirte写的二进制字节流肯定要符合HTTP格式规范,通常用户输入一个URL就好,经过一系列...