- 博客(7)
- 收藏
- 关注
转载 MySQL 存储引擎 InnoDB 和 MyISAM 对比总结
MyISAM 引擎 一、MyISAM 是 MySQL 默认的引擎,它的设计目标是快速读取。 MyISAM 引擎使用B+ 树作为索引结构,使用的是非聚集索引,所以叶子节点的 data 域存放的是数据记录的地址。下图是MyISAM索引的原理图: 这里设表一共有三列,假设我们以 Col...
2018-09-30 14:45:00
95
转载 Java 并发问题(三)—— ReetrantLock 及其 Condition 实现原理
一、Lock接口 上一篇博文谈到的 synchronized 锁是隐式锁,即锁的持有和释放都是隐式的,我们无需干预,这篇我们主要讲解的是显式锁,即锁的持有和释放都必须由我们自己手动编写。在Java 1.5中,官方在 java.util.concurrent(简称为 JUC )并发包中加入了 ...
2018-09-24 18:56:00
193
转载 Java 并发问题详解(二)—— synchronized 实现原理详解
一、synchronized的三种应用方式 synchronized关键字最主要有以下3种应用方式,下面分别介绍 1. 修饰实例方法,作用于当前实例,对当前实例对象 instance 加锁,进入同步代码前必须要获得当前实例对象 instance 的锁 当一个线程正在访问一个实例的对象的 ...
2018-09-24 17:10:00
117
转载 Java 并发问题详解(一)—— 并发问题的产生原因和应对措施
线程安全是并发编程中的重要关注点,应该注意到的是,造成线程安全问题的主要诱因有一下两点: 1. 存在共享数据 (也称临界资源) 2. 存在多条线程共同操作共享数据 只用同时满足上面两个条件,才会引发线程安全问题。 因此,我们可以使用以下两种常用的加锁方式来解决线程安全问题: 当存在多...
2018-09-24 15:17:00
536
转载 Java 线程有哪些基本状态? 这些状态是如何定义的?
1. 新建(new):新创建了一个线程对象。2. 可运行(runnable):线程对象创建后,其他线程(比如main线程)调用了该对象的start()方法。该状态的线程位于可运行线程池中,等待被线程调度选中,获取cpu的使用权。补充:为什么我们调用start()方法时会执行run()方...
2018-09-16 21:40:00
448
转载 HTTP中GET与POST方法的区别
GET和POST是HTTP请求的两种基本方法,他们最直观的区别就是GET把参数经过简单的处理直接放在URL中传递,所以会有长度限制和安全隐患的缺点;而POST是通过请求体(request body)来传递参数的。你可能自己写过无数个GET和POST请求,或者已经看过很多权威网站总结出的他们的...
2018-09-14 10:19:00
120
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人