摘要:
什么是AQS? synchronized(基于底层C++,语言实现的同步机制) Aqs同步器(Java实现) 【Unsafe】魔法类 绕过虚拟机,直接操作底层的内存 话不多说,我们手动模拟一个AQS: 1》锁对象: package com.example.demo.thread.current; i 阅读全文
摘要:
我们先看一个最古老的多线程实现的服务端 public class SocketThread { public static void main(String[] args) throws IOException { ServerSocket serverSocket = new ServerSock 阅读全文
摘要:
话不多少,跟图操作就可以了 然后将代码上传就可以了,右键项目: 然后再服务器上看效果就可以了 阅读全文
摘要:
yum安装: 搜索jdk安装包 [root@bogon ~]# yum search java|grep jdk 下载jdk1.8,下载之后默认的目录为:/usr/lib/jvm [root@bogon ~]# yum install java-1.8.0-openjdk 看到如下这个就说明安装成功 阅读全文
摘要:
背景 在jdk1.6之前,【synchronized】是一直都被称为重量级锁;但是在jdk1.6之后,【synchronized】进行了各种优化,本文主要介绍一下以下三种锁: 自适应自旋锁 锁消除 锁粗化 自旋锁和自适应自旋锁 自旋锁 互斥同步进入阻塞状态的开销都很大,应该尽量避免。 大多数情况下, 阅读全文
摘要:
此处我们先看一下jdk7中HashMap扩容源码? void transfer(Entry[] newTable, boolean rehash) { int newCapacity = newTable.length; for (Entry<K,V> e : table) { while(null 阅读全文
摘要:
《手把手模拟CAS,瞬间理解CAS的机制 》中用案例模拟了CAS,感兴趣的同学课先看看这个 先来看看概念,【CAS】 全称“CompareAndSwap”,中文翻译即“比较并替换”。 定义:CAS操作包含三个操作数 —— 内存位置(V),期望值(A),和新值(B)。 如果内存位置的值与期望值匹配,那 阅读全文
摘要:
话不多少,先看个案例,【模拟100个用户,每个用户访问10次网站】”: public class ThreadDemo1 { //总访问量 private static int count = 0; //模拟访问的方法 public static void request() throws Inte 阅读全文
摘要:
我们首先先看看JMM模型,话不多说,上图: JMM对应的8大原子操作: read(读取):从主内存读取数据 load(载入):将主内存读取到的数据写入工作内存 use(使用):从工作内存读取数据来计算 assign(赋值):将计算好的值重新赋值到工作内存中 store(存储):将工作内存数据写入主内 阅读全文
摘要:
参考文献: runcate(截断)与delete(删除)的区别 drop table 这里先介绍一下【InnoDB】存储表空间概念: Innodb存储引擎,可将所有的数据库数据存放于【ibdata1】的共享表空间;也可以将每张表存放于独立的.idb文件的独立表空间 (共享表空间和独立表空间都是针对数 阅读全文