AtomicInteger ,一个提供原子操作的 Integer 的类,常见的还有AtomicBoolean、AtomicInteger、AtomicLong、AtomicReference 等,他们的实现原理相同, 区别在与运算对象类型的不同。令人兴奋地,还可以通过 AtomicReference ...
分类:
其他好文 时间:
2020-02-20 13:02:47
阅读次数:
58
事务操作 隔离操作: 事务中所有的命令都会序列化,按顺序执行,不会被其他命令打扰 原子操作: 事务中所有的命令要么全部执行,要么全部不执行 添加事务并执行 DISCARD退出事务 监听防止事务修改 解除监听 参考网站:http://redisdoc.com/transaction/index.htm ...
分类:
其他好文 时间:
2020-02-16 19:07:03
阅读次数:
70
并发编程面试题-内存模型说下内存模型定义为什么要有内存模型为什么要重排序,重排序在什么时候排如何约束重排序规则happens-before什么是顺序一致性CAS 实现的原理,是阻塞还是非阻塞方式?什么时候用,使用时需要考虑的问题处理器和 Java 分别怎么保证原子操作保证了原子性就能保证可见性吗?f ...
分类:
编程语言 时间:
2020-02-14 10:35:22
阅读次数:
75
一、原子性 原子性是指一个操作是不可中断的。即使是在多线程一起执行的时候,一个操作一旦开始,就不会被其它线程干扰。 原子的含义本身就是不可再分的,对于一个不可再分的操作要么就完成,要么就完不成,不会说做一半被另外一个线程给干扰。 一般认为CPU的指令都是一些原子操作,但是像程序代码里的东西就不是原子 ...
分类:
编程语言 时间:
2020-02-13 19:22:08
阅读次数:
69
# 存储引擎 -- 存储数据的方式# 一张表 # 数据 # 表的结构 # 索引(查询的时候使用的一个目录结构)# Innodb存储引擎 mysql5.6之后的默认的存储引擎# 数据和索引存储在一起 2个文件 # 数据索引\表结构# 数据持久化# 支持事务 : 为了保证数据的完整性,将多个操作变成原子 ...
分类:
编程语言 时间:
2020-02-12 14:42:39
阅读次数:
57
小白记录贴 std::atomic<bool> a(true); //定义一个类型为atomic_bool的原子变量并赋初值为true原子操作:赋值: a = true;a.store(true); 读取:int b = a;int b = a.load(); 原子操作还可以包含一个参数:内存顺序( ...
分类:
编程语言 时间:
2020-02-12 13:21:33
阅读次数:
92
1:线程安全 如果有多个线程在同时运行,而这些线程可能会同时运行这段代码。程序每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全的。 我们通过一个案例,演示线程的安全问题: 电影院要卖票,我们模拟电影院的卖票过程。假设要播放的电影是 “上海堡垒”,本次电影的座 ...
分类:
编程语言 时间:
2020-02-08 14:07:33
阅读次数:
98
Java从JDK 1.5开始提供了java.util.concurrent.atomic包(以下简称Atomic包),这个包中 的原子操作类提供了一种用法简单、性能高效、线程安全地更新一个变量的方式。 :baby_chick: 内部都是采用CAS+volatile实现了无锁并发 这节不讲原理,只讲如 ...
分类:
其他好文 时间:
2020-02-07 01:10:29
阅读次数:
112
简介 自从JAVA 创建以来,java 就支持类似锁与线程的并发操作。本篇内容主要帮助JAVA 开发者理解和应用JAVA 的核心并发概念 以及如何应用。 概念 概念介绍 原子性 一个原子操作就是要么全部成功,要么全部失败 可见性 可见性是指 一个线程是否可以看到另一个线程的修改 表 1: 并发概念 ...
分类:
编程语言 时间:
2020-02-03 22:18:12
阅读次数:
78
昨天简单的看了看Unsafe的使用,今天我们看看JUC中的原子类是怎么使用Unsafe的,以及分析一下其中的原理! 一.简单使用AtomicLong 还记的上一篇博客中我们使用了volatile关键字修饰了一个int类型的变量,然后两个线程,分别对这个变量进行10000次+1操作,最后结果不是200 ...
分类:
其他好文 时间:
2020-01-30 09:52:18
阅读次数:
77