什么是线程安全? 在拥有 共享数据 的 多条线程并行执行 的程序中,线程安全的代码会通过 同步机制 保证 各个线程 都可以正常且正确的执行,不会出现数据污染等意外情况。 如何保证线程安全? 1. 给 共享的资源 加把 锁 ,保证每个资源变量每时每刻至多被一个线程占用。 2. 让线程也拥有资源,不用去 ...
分类:
编程语言 时间:
2019-08-30 22:47:02
阅读次数:
98
多线程的实现方式(继承父类和实现接口)三种 1. 继承父类Thread,重写run()方法 【实现】 java1.5后 java.util.concurrent(concurrent:并发) atomic:原子 ,AtomicInteger:原子引用 1.volatile java虚拟机提供的轻量级 ...
分类:
编程语言 时间:
2019-08-27 01:01:02
阅读次数:
120
在上一篇文章,我们已经实现了分布式锁。今天更进一步,在分布式锁的基础之上,使用ZooKeeper实现读写锁。 ...
分类:
其他好文 时间:
2019-08-23 13:47:38
阅读次数:
83
1.redis和memcached比较? 相同点:二者都是将数据缓存到内存中。 区别: redis支持list,Set,zSet,hash,string五种类型 memcached只支持字符窜数据的存储 redis支持RDb和AOF两种持久化的存储 memcached存储基于LRU,不支持持久化,出... ...
分类:
其他好文 时间:
2019-08-21 13:50:52
阅读次数:
118
CAP原理 最终一致性 Redis提供的同步机制 主从同步 丛丛同步 缓解master节点的压力 主从同步 丛丛同步 缓解master节点的压力 Redis的同步方式 增量同步 Redis同步的指令流,环形Buffer存储指令流 缺点:buffer大小固定,会存在未执行的指令被覆盖掉的情况 快照同步 ...
分类:
其他好文 时间:
2019-08-11 10:38:53
阅读次数:
98
jdk1.8我认为有几个主要的难点: 1. 同步机制 2. 红黑树的操作 3. 数学原理(重要是基于统计值的算法选取和变量设定) 其中这里只分析同步机制中比较重要的部分。 这篇东西和上一篇文章LongAdder的原理关联性比较大,如果懂LongAdder的则忽略。 全文主要从以下几方面来讲: 1. ...
分类:
其他好文 时间:
2019-08-03 21:36:30
阅读次数:
111
本文主要讲java中多线程的使用方法、线程同步、线程数据传递、线程状态及相应的线程函数用法、概述等。首先让我们来了解下在操作系统中进程和线程的区别: 进程:每个进程都有独立的代码和数据空间(进程上下文),进程间的切换会有较大的开销,一个进程包含1--n个线程。(进程是资源分配的最小单位) 线程:同一 ...
分类:
编程语言 时间:
2019-07-31 17:01:23
阅读次数:
96
线程安全:线程安全是多线程编程时的计算机程序代码中的一个概念。在拥有共享数据的多条线程并行执行的程序中,线程安全的代码会通过同步机制保证各个线程都可以正常且正确的执行,不会出现数据污染等意外情况。 理解:多个线程对同一个是数据进行写操作的时候,执行的结果和预期结果是一致的,就表示线程安全。(如购票系 ...
分类:
编程语言 时间:
2019-07-29 19:00:05
阅读次数:
127
解释一下线程安全问题产生的原理 三个线程t0 t1 t2 。加上t0抢到cpu的执行权 t0抢到了cpu的执行权。,但是走到if语句的地方。执行了sleep,就失去了执行权 假设t2抢到了执行权也来执行run方法 t2睡醒了 重复票的问题。三个线程同时执行到了 输出的这行代码 总结 ...
分类:
编程语言 时间:
2019-07-28 19:49:41
阅读次数:
101