本博客系列是学习并发编程过程中的记录总结。由于文章比较多,写的时间也比较散,所以我整理了个目录贴(传送门),方便查阅。 "并发编程系列博客传送门" 前言 之前的文章中讲到,JMM是内存模型规范在Java语言中的体现。JMM保证了在多核CPU多线程编程环境下,对共享变量读写的原子性、可见性和有序性。 ...
分类:
编程语言 时间:
2019-12-21 15:59:11
阅读次数:
66
主要针对的是“有序数组”中查找某个特定元素。 1、二分查找的思想:主要针对的是有序数组,要充分利用数组有序的特性,要是遍历查找,时间复杂度是O(n),就浪费了数组的有序性。 其思想就是,每次查找对比的元素都是数组的中间元素,通过比较中间元素和目标元素的大小,进一步的缩小范围,每次比较的范围都缩小为原 ...
分类:
其他好文 时间:
2019-12-18 10:43:54
阅读次数:
80
索引是sql优化的使用频度最高的武器 索引就是一种优化查询的工具,注意 是优化了查询.,但是他也影响了dml的速度变慢. 在了解索引的优点之前我们先看一下索引的结构,只有充分了解索引的结构,才能明白索引的机制和应用. 索引结构 根块--茎块 叶块 叶块;存储rowid+列植.索引存储列植的时候是有序 ...
分类:
数据库 时间:
2019-11-28 19:13:04
阅读次数:
93
AuomicInteger的作用, 高并发,有序性,原子性 使用compareandset设置cpu级别的锁,如果是0,就可以获取锁,如果是1,就抛出异常,结束线程,同时使用了只允许抢到锁的线程去解锁 AutomicBoolean 可替代volitic,同时,值都是放到主先吃个 ...
分类:
编程语言 时间:
2019-11-27 00:29:11
阅读次数:
67
and or not between in 优先and 尽量在where 与order by上建立索引 MySQL中,支持两种排序方式:FileSort和Index排序。Index排序的效率更高,Index排序:索引可以保证数据的有序性,因此不需要再进行排序。FileSort排序:一般在内存中进行排 ...
分类:
数据库 时间:
2019-11-26 13:26:46
阅读次数:
96
6-4 递增的整数序列链表的插入 (15 分) 本题要求实现一个函数,在递增的整数序列链表(带头结点)中插入一个新整数,并保持该序列的有序性。 函数接口定义: List Insert( List L, ElementType X ); 其中List结构定义如下: typedef struct Nod ...
分类:
其他好文 时间:
2019-11-25 20:42:01
阅读次数:
60
在并发编程中分析线程安全的问题时往往需要切入点,那就是两大核心:JMM抽象内存模型以及happens-before规则Java内存模型以及happens-before规则,三条性质:原子性,有序性和可见性。关于synchronized和volatile已经讨论过了,就想着将并发编程中这两大神器在 原... ...
分类:
编程语言 时间:
2019-11-16 17:48:13
阅读次数:
80
单例模式之懒汉式 饿汉式在多线程的情况小可能会出现多实例的情况 解决1;加锁 解决2:双层判断方式,减少枷锁的次数doubleCheck 3.保证程序的有序性,禁止程序内部优化,从而保证不会出现空指针异常 4.利用jvm只产生一份static,并且是主动加载,实现单例懒汉式 使用枚举模式 ...
分类:
编程语言 时间:
2019-11-15 00:23:05
阅读次数:
100
在《 "Java内存模型(JMM)详解" 》一文中我们已经讲到了Java内存模型的基本结构以及相关操作和规则。而Java内存模型又是围绕着在并发过程中如何处理原子性、可见性以及有序性这三个特征来构建的。本篇文章就带大家了解一下相关概念、原则等内容。 原子性 原子性即一个操作或一系列是不可中断的。即使 ...
分类:
编程语言 时间:
2019-11-06 13:50:42
阅读次数:
88
一、共享性 多个线程共享同一块内存,会引起线程安全问题。 例如变量A同时被Thread1和Thread2访问,可能发生Thread1和Thread2读取的变量A不是同一个值,大多数情况下Thread1和Thread2不会恰好同一个时间读取变量A,而变量A在这段时间差中可能已被修改。 二、互斥性 对同 ...
分类:
编程语言 时间:
2019-11-06 10:29:41
阅读次数:
83