-
JMM-02-data struct
内存模型
Java内存模型,往往是指Java程序在运行时内存的模型,而Java代码是运行在Java虚拟机之上的,由Java虚拟机通过解释执行(解释器)或编译执行(即时编译器)来完成,故Java内存模型,也就是指Java虚拟机的运行时内存模型。
运行时内存模型
运行时内存模型,分为线程私有和共享数据区两大类,其中线程私有的数据区包含程序计数器、虚拟机栈、本地方法区,所有线程共享的数据区包...
2018-07-26 13:36:45 |
JMM
-
JMM-01-intro
Java Memory Model
简介
在多处理器系统中,处理器通常有一个或多个内存缓存层,通过加速对数据的访问(因为数据离处理器更近)和减少共享内存总线上的流量(因为许多内存操作可以由本地缓存来满足),提高性能。内存缓存可以极大地提高性能,但是它们带来了许多新的挑战。
例如,当两个处理器同时检查相同的内存位置时,会发生什么?在什么条件下它们会看到相同的值?
在处理器级别,内存模型...
2018-07-26 12:55:37 |
JMM
-
Java Model Memory
JMM (Java 内存模型)
作用
内存模型描述给定程序和该程序的执行跟踪,该执行跟踪是否为程序的合法执行。
Java编程语言内存模型通过检查执行跟踪中的每个读取并检查读取所观察到的写入是否根据某些规则有效来工作。
内存模型描述程序的可能行为。一个实现可以自由地生成它喜欢的任何代码,只要所有的结果执行都会产生一个可以由内存模型预测的结果。
这为实现人员执行大量代码转换提供了很大的...
2018-07-26 12:55:37 |
Java
-
Database Transaction
数据库事务
数据库事务(简称:事务)是数据库管理系统执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成。
概要
一个数据库事务通常包含了一个序列的对数据库的读/写操作。它的存在包含有以下两个目的:
为数据库操作序列提供了一个从失败中恢复到正常状态的方法,同时提供了数据库即使在异常状态下仍能保持一致性的方法。
当多个应用程序在并发访问数据库时,...
2018-07-26 03:17:13 |
Database
-
浅谈数据库事务之 undo-log
前言
大家好,我是老马。
上一篇文章我们简单学习了事务的隔离级别,
另外的一些概念,比如原子性和持久性谈的人不多。
本文就简单聊一下 mysql 中的 undo-log。
undo log的概念
undo log是mysql中比较重要的事务日志之一,顾名思义,undo log是一种用于撤销回退的日志,在事务没提交之前,MySQL会先记录更新前的数据到 undo log日志文件里面...
2018-07-26 03:17:13 |
Database
-
浅谈数据库事务之 redo-log
前言
大家好,我是老马。
上一篇文章我们简单学习了事务的隔离级别,
另外的一些概念,比如原子性和持久性谈的人不多。
本文就简单聊一下 mysql 中的 redo-log。
REDO-LOG
是什么?
redo log叫做重做日志,是保证事务持久性的重要机制。
当mysql服务器意外崩溃或者宕机后,保证已经提交的事务,确定持久化到磁盘中的一种措施。
为什么需要?
innod...
2018-07-26 03:17:13 |
Database
-
浅谈数据库事务之隔离级别 Database Transaction isolation
前言
大家好,我是老马。
每一个做后端的开发小伙伴,基本都接触过数据库,对事务也都有所耳闻。
但是真的问起来,可能都会记不太清处理。
每天都在用,但是总是忘记,事务堪称最熟悉的陌生人。
本文就和大家一起重点回顾下事务的隔离级别。
基本概念
为保证文档的完整性,下面是一些官方的概念。不感兴趣的小伙伴可以跳过。
遇到不清楚的名词,回头查阅即可。
数据库事务
数据库事务(简称:...
2018-07-26 03:17:13 |
Database
-
Springboot Transaction @EnableTransactionManagement, spring 事务不生效; MySQL AutoCommit
@EnableTransactionManagement 不生效
要使 @EnableTransactionManagement 生效,需要确保以下几个方面都已经配置正确:
1) 确保在Spring配置文件中声明了 <tx:annotation-driven> 标签。
这个标签会启用Spring的事务管理功能,并且会使得@Transactional注解生效。
示例代码如下...
2018-07-26 03:07:50 |
Spring