GeekIBLi

Mysql-MVCC多版本并发控制

MySQL
MVCC多版本并发控制MVCC,全称Multi-Version Concurrency Control,即多版本并发控制。MVCC是一种并发控制的方法,一般在数据库管理系统中,实现对数据库的并发访问,在编程语言中实现事务内存。 MVCC在MySQL InnoDB中的实现主要是为了 「 提高数 ...
Read more

Java对象头

多线程
Java对象头JOL查看对象头信息在项目中引入以下依赖 12345<dependency> <groupId>org.openjdk.jol</groupId> <artifactId>jol-core</artifactId ...
Read more

Java-CAS原理和底层实现

多线程
CAS原理和底层实现 什么是CASCAS是(compare and swap) 的缩写,它能在不加锁的情况下,在多线程的环境下,保证多线程一致性的改动某一值; ABA问题ABA问题是一个线程在CAS比较值和原来是否相等的过程中,别的线程修改过这个值,但是又改回去了,倒置当前线程比较的时候, ...
Read more

Java-FutureTask原理

多线程
FutureTaskFuture方法介绍123456789101112131415161718public interface Future<V> { // 取消任务 可中断的方式取消 boolean cancel(boolean mayInterr ...
Read more

Java-join方法原理解析

多线程
join方法12345join重载方法1 join()2 join(long millis) //参数为毫秒3 join(long millis,int nanoseconds) //第一参数为毫秒,第二个参数为纳秒 功能演示123456789101112131415publi ...
Read more

Java内存模型

JVM 多线程
Java内存模型 什么是JMM?Java Memory Model简称JMM, 是一系列的Java虚拟机平台对开发者提供的多线程环境下的内存可见性、是否可以重排序等问题的无关具体平台的统一的保证。(可能在术语上与Java运行时内存分布有歧义,后者指堆、方法区、线程栈等内存区域)。 JMM ...
Read more

Java-synchronzied底层原理

多线程
synchronzied底层原理synchronzied四个层级实现 Java代码 通过添加synchronzied给对象或者方法或者代码块 字节码层级通过一组 MONITORENTER/MONITOREXIT指令 JVM层级:锁升级过程 汇编执行通过 lock comxchg指令保证原子操 ...
Read more

Java-锁消除和锁膨胀

多线程
锁消除和锁粗化锁消除 (lock eliminate)1234public void add(String str1,String str2){ StringBuffer sb = new StringBuffer(); sb.append(str1).append(s ...
Read more

Java-锁升级过程

多线程
锁升级使用JOL查看加锁之后的对象信息12345678public static void main(String[] args) { Object object = new Object(); System.out.println(ClassLayou ...
Read more

JVM-strace

JVM
strace 命令查看操作系统日志strace -ff -o out java ***.class -ff : 跟踪进程下所有线程用到的系统命令-o : 将跟踪的操作系统日志输出 下面查看JDK1.8下,BIO模式都有哪些系统命令的执行 1234567891011121314151617 ...
Read more
Prev Next