摘要: volatile可以保证线程可见性和禁止指令重排序,但是无法保证原子性。在JVM底层volatile是采用“内存屏障”来实现的。加入volatile关键字时,汇编后会多出一个lock前缀指令。lock前缀指令其实就相当于一个内存屏障。Java 并发类库提供的线程池有哪几种?Executors 目前提 阅读全文
posted @ 2017-09-05 21:00 yuer629 阅读(993) 评论(0) 推荐(0) 编辑
摘要: ThreadLocal,该类提供了线程局部 (thread-local) 变量,ThreadLocal会为每个线程创建变量的副本,线程之间互不影响,这样就不存在线程安全问题。在每个线程Thread内部有一个ThreadLocal.ThreadLocalMap类型的成员变量threadLocals,这 阅读全文
posted @ 2017-09-05 20:58 yuer629 阅读(354) 评论(0) 推荐(0) 编辑
摘要: 1)事务:MyISAM不支持,InnoDB支持2)锁级别: MyISAM 表级锁,InnoDB 行级锁MySQL表级锁有两种模式:表共享读锁(Table Read Lock)和表独占写锁(Table Write Lock)。InnoDB行锁是通过给索引项加锁来实现的,即只有通过索引条件检索数据,In 阅读全文
posted @ 2017-09-05 20:57 yuer629 阅读(154) 评论(0) 推荐(0) 编辑
摘要: JVM三大性能调优参数 JVM 几个重要的参数:-server -Xmx3g -Xms3g -XX:MaxPermSize=128m-XX:NewRatio=1 新生代(Eden + 2*S)与老年代(不包括永久区)的比值-XX:SurvivorRatio=8 2个Survivor区和Eden区的比 阅读全文
posted @ 2017-09-05 20:55 yuer629 阅读(516) 评论(0) 推荐(0) 编辑
摘要: Redis 持久化机制 Redis是一个支持持久化的内存数据库,通过持久化机制把内存中的数据同步到硬盘文件来保证数据持久化。当Redis重启后通过把硬盘文件重新加载到内存,就能达到恢复数据的目的。实现:单独创建fork()一个子进程,将当前父进程的数据库数据复制到子进程的内存中,然后由子进程写入到临 阅读全文
posted @ 2017-09-05 20:54 yuer629 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 使用log4j时不起作用,每次执行完出现以下提示: log4j:WARN No appenders could be found for logger (org.apache.ibatis.logging.LogFactory). log4j:WARN Please initialize the l 阅读全文
posted @ 2017-09-05 20:53 yuer629 阅读(216) 评论(0) 推荐(0) 编辑