1. 多线程可能出现的安全问题 问题分析: i++ 这个操作是非原子性的,分为三步: 读取 i 的值 将读取的数值 +1 将数值写回 i 线程t1,读取了i 值为10,在把值写回 i (i++ = 11) 之前,线程t2就读取了 i 的值,此时t1并未修改 i 的值,所以 i 还是等于10 因此二者 ...
分类:
编程语言 时间:
2020-01-23 15:21:20
阅读次数:
97
Java类equals抽象类类型StringIntegershort多线程概念锁synchronized线程创建及状态线程通讯线程安全ThreadLocalatomicvolatile终止线程反射什么是反射?序列化什么是 java 序列化?什么情况下需要序列化?Spring组件IOC依赖注入作用域事... ...
分类:
编程语言 时间:
2020-01-23 09:20:59
阅读次数:
88
在开发高并发系统时,有三把利器用来保护系统:缓存、降级和限流。 服务限流: 流量控制本质上是减小访问量,而服务处理能力不变;而服务降级本质上是降低了部分服务的处理能力,增强另一部分服务处理能力,而访问量不变。 限流算法的应用场景非常广泛,比如通过限流来确保下游配置较差的应用不会被上游应用的大量请求击 ...
分类:
编程语言 时间:
2020-01-21 18:27:51
阅读次数:
121
@ "TOC" JDK1.7:数组+链表 JDK1.8:数组+链表+红黑树 前五个问题环境用的是是JDK1.7,后面全部是1.8 1、Hash的计算规则? 简单的说是个“扰动函数”,目的是为了使散列分布的更加均匀。 具体算法是用key的Hashcode值右移16位,将hashcode高位和低位的值进 ...
分类:
其他好文 时间:
2020-01-19 22:35:07
阅读次数:
138
c++异常处理 int main(){ try { throw 1; } catch ( int e ) { printf("catch int\r\n"); } catch ( float e) { printf("catch float\r\n"); } } 函数开始,注册异常处理函数 008C ...
分类:
编程语言 时间:
2020-01-19 22:31:07
阅读次数:
300
Java 锁分类 Java 中的锁有很多,可以按照不同的功能、种类进行分类,下面是我对 Java 中一些常用锁的分类,包括一些基本的概述 从线程是否需要对资源加锁可以分为 悲观锁 和 乐观锁 从资源已被锁定,线程是否阻塞可以分为 自旋锁 从多个线程并发访问资源,也就是 Synchronized 可以 ...
分类:
其他好文 时间:
2020-01-16 14:24:22
阅读次数:
204
上期回顾: 上次博客我们说了我们的volatile关键字,我们知道volatile可以保证我们变量被修改马上刷回主存,并且可以有效的防止指令重排序,思想就是加了我们的内存屏障,再后面的多线程博客里还有说到很多的屏障问题。 volatile虽然好用,但是别用的太多,咱们就这样想啊,一个被volatil ...
分类:
编程语言 时间:
2020-01-14 10:13:43
阅读次数:
96
1.并发 2.基础 3.访问共享资源 4.终结任务 5.线程协作 6.错失信号 7.死锁 8.其他工具 以上来自《think in java》 ...
分类:
编程语言 时间:
2020-01-14 10:08:44
阅读次数:
82
在另外的两篇文章中先后介绍了轻量级同步关键字volatile和重量级锁关键字synchronized,这两个关键字是Java语言中进行线程同步的基本方式(当然还有ReentrenLock等显式锁方式)。本文将就Java虚拟机针对同步原语做的一些锁优化进行简单的介绍,同时基于JDK 1.6将这些锁优化 ...
分类:
编程语言 时间:
2020-01-10 20:23:51
阅读次数:
119
netty 中,每一个 channel 有一个写缓冲 ChannelOutboundBuffer ChannelOutboundBuffer 类中维持一个 Entry 链表,Entry 是链表的节点,封装了待写入的 ByteBuf,而 netty 最终写入 socket 的是 ByteBuffer, ...
分类:
数据库 时间:
2020-01-10 01:14:41
阅读次数:
93