- 博客(10)
- 收藏
- 关注
转载 ConcurrentLinkedQueue
非阻塞队列之ConcurrentLinkedQueue 在并发编程中,有时间需要使用线程安全的队列。有两种方式:一种是使用阻塞算法,另一种是非阻塞算法。使用阻塞算法的队列可以用同一把锁(入队和出队同一把锁)或两把锁(入队和出队使用不同的锁)等方式来实现。非阻塞的实现方式则可以使用循环CAS的方式来实现。 ConcurrentLinkedQueue 是一个基于链表的无界非阻塞队列,线程安...
2019-12-17 16:50:47 220
原创 多线程基础篇
多线程 进程和线程 区别 定义:(1) 单核处理器相当于一个CPU = 一个车间,多核处理器相当于多个CPU = 一座工厂 (一座工厂包含多个车间)每个车间都相当于一个进程,进程是程序的一次执行过程,是程序在执行过程汇总分配和管理资源的基本单位,是操作系统资源分配的基本单位,每个进程都有自己的地址空间;(2) 每个车间都有工人,每个工人都相当于一个线程,线程是CPU调度和执行的基本单位; 联系:...
2019-12-17 16:41:13 104
转载 Synchronized笔记
Synchronized学习 1 原理 依赖jvm实现同步,底层是通过一个监视器对象(monitor)完成。wait()、notify()等方法也依赖monitor对象 其中监视器锁(monitor)的本质依赖于底层操作系统的互斥锁(Mutex Lock)实现 2 作用 保证同一时刻最多只有一个线程执行被Synchronized修饰的方法/代码,其他线程必须等待当前线程执行结束释放锁后方可获取锁执...
2019-12-17 16:16:41 85
原创 Stream使用实例
Stream使用实例 JDK8出现后增加了流的使用,大大提高了代码的简洁度,下面是具体的实例使用,以供参考: 创建Person类,其中重写hashCode和equals方法,以便使用distinct()去重 //创建流--> 系列中间操作 --> 终止操作拿回返回结果 public class StreamDemo { public static void main(Stri...
2019-12-17 15:53:02 178
原创 CPU占用过高排查步骤
CPU占用过高排查步骤 CPU占用过高排查: ps -ef |grep java 查看内存分配 进入服务器 通过命令 top 查看CPU使用情况;记录PID,举例21045 (PID是进程标识符) 通过命令 ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head 打印出前10条占用CPU高的进程信息 或者通过命令 ps aux | grep P...
2019-12-17 15:48:31 268
原创 CAS理解
CAS理解 什么是CAS算法 CAS:Compare and Swap 比较再交换 CAS有三个操作数:内存地址V,旧的预期值A,即将要更新的目标值B CAS指令执行时,当且仅当内存地址V的值与预期值A相等时,将内存地址V的值修改为B,否则就什么都不做,整个比较并替换的过程就是一个原子操作。 CAS的缺陷 循环时间长,开销大 只能保证一个共享变量的原子操作 ABA问题 循环时间长,开销大: 如...
2019-12-17 15:24:30 96
原创 List集合分片
List集合分片处理 使用场景 当集合过大,单次处理数据对数据库造成压力时,必须考虑分批分片处理数据。比如 Oracle数据库中IN参数个数不能超过1000 ,这时可以把参数进行分批处理。当然这种情况也可 用表关联代替IN:.在where条件中使用子查询,如“select * from b where c in (select d from e …)” 或者 可以拆分sql用 where id i...
2019-12-17 14:50:52 747
原创 Dos常用命令
Dos基本命令 打开CMD的方式 1. 开始+系统+命令提示符 2. Win键+R 输入CMD 3. 在任意文件夹上按住shift键+鼠标右键点击,在此处打开命令行窗口 4. 在资源管理器上的地址栏最前方加上 cmd+空格 +路径 常用的Dos命令 #盘符切换 D: #查看当前目录下所有文件 dir #切换目录 cd (change directory) #回到上一级目录 cd .. #清理屏幕...
2019-11-13 09:54:47 99
转载 markdown学习
快捷键 撤销:Ctrl/Command + Z 重做:Ctrl/Command + Y 加粗:Ctrl/Command + B 斜体:Ctrl/Command + I 标题:Ctrl/Command + Shift + H 无序列表:Ctrl/Command + Shift + U 有序列表:Ctrl/Command + Shift + O 检查列表:Ctrl/Command + Shift + ...
2019-11-11 21:06:47 71
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人