摘要:
2.vim是什么? 3.3种工作模式 4.常用命令 4.1移动(基本) 4.2移动(程序员常用) 4.3选中文本(可视模式) 4.4撤销和恢复 4.5删除文本 4.6复制和粘贴 4.7替换 4.8缩排和重复执行 4.9查找 4.10查找并替换 4.11插入命令 5.分屏命令 5.1命令行模式扩展 5 阅读全文
摘要:
下载 下载地址:http://maven.apache.org/download.cgi。下载maven文件并解压。 配置环境变量 编辑.bash_profile文件: vim ~/.bash_profile 配置maven文件地址: export M2_HOME=/Users/xxx/Docume 阅读全文
摘要:
1.索引的作用 索引是帮助数据库高效获取数据的数据结构。 2.InnoDB中索引的存储模型-B+树 InnoDB使用了B+树索引模型,所以数据都是存储在B+树中的。 每一个索引在InnoDB里面对应一棵B+树。 B+树的特点 1)B+树的内部结点只存放键,不存放值,因此可以在内存页中获取更多的键,这 阅读全文
摘要:
1.并发编程三大特性——原子性、可见性、有序性 1).原子性(Lock、synchronized可以保证原子性,volatile无法保证原子性) 原子性是指一个操作或者多个操作,要么全部执行并且执行的过程不会被任何因素打断,要么就都不执行。 2).可见性(volatile可保证可见性,synchro 阅读全文
摘要:
在并发编程中,我们通常会遇到以下三个问题:原子性问题,可见性问题,有序性问题。 1、原子性 即一个操作或者多个操作,要么全部执行并且执行的过程不会被任何因素打断,要么就都不执行。 一个很经典的例子就是银行账户转账问题: 比如从账户A向账户B转1000元,那么必然包括2个操作:从账户A减去1000元, 阅读全文
摘要:
目录 AQS 重入锁ReentrantLock 1.可重入实现原理 1. 锁的获取 2. 锁的释放 2.公平锁与非公平锁实现原理 读写锁ReadWriteLock 什么是读写锁 1.读写状态的设计 2.写锁的获取与释放 2.1写锁的获取 2.2写锁的释放 3.读锁的获取与释放 3.1读锁的获取 3. 阅读全文
摘要:
目录 综述 Lock接口 1.什么是Lock接口 2.与synchronized的区别 3.Lock接口源码 4.如何使用,以及注意事项 可重入锁ReentrantLock 1.可重入锁ReentrantLock 什么是可重入锁? 什么是公平锁,非公平锁? 2.如何使用 公平锁与非公平锁测试对比 3 阅读全文
摘要:
目录 概述 Nginx 服务的基本配置项 HTTP 核心模块的配置 https://www.kancloud.cn/digest/understandingnginx/202587 本文转自上述专栏文章《理解Nginx源码》之Nginx配置文件 概述 Nginx 是使用一个 master 进程来管理 阅读全文
摘要:
目录 Thrift基础 1.数据类型 基本类型 结构 容器 异常 服务 2.Thrift HelloWorld 2.1 thrift-idl模块 2.2 thrift-server模块 2.3 thrift-client模块 2.4 运行 Thrift原理分析 Thrift网络栈 Transport 阅读全文
摘要:
目录 第12章 Java内存模型与线程 12.3 Java内存模型 主内存和工作内存 主内存和工作内存之间的交互协议 1)对于volatile型变量的特殊规则 2)对于long和double型变量的特殊规则 原子性、可见性、有序性 先行发生原则(happens-before) 12.4 Java与线 阅读全文
摘要:
目录 第13章 线程安全与锁优化 13.2 线程安全 13.2.1 Java语言中的线程安全 1.不可变 2.绝对线程安全 3.相对线程安全 4.线程兼容 5.线程对立 13.2.2 线程安全的实现方法 1.互斥同步 2.非阻塞同步 3.无同步方案 13.3 锁优化 1.自旋锁与自适应自旋 2.锁消 阅读全文