摘要: Synchronized 1:jvm 层面实现,如果抛异常的话,jvm会自动释放掉锁 2:只有一个条件变量,锁对象的wait 和 notify 3:可以被性能监视工具监视到 4:如果在方法上添加syn那么,锁对象就是该对象,共享该对象的线程就会互斥Lock 1:更加面向对象 2:代码层面实现 3:可 阅读全文
posted @ 2015-12-10 11:32 coldridgeValley 阅读(2699) 评论(0) 推荐(0) 编辑
摘要: 开坑... 阅读全文
posted @ 2015-11-20 00:41 coldridgeValley 阅读(925) 评论(0) 推荐(0) 编辑
摘要: 前言: Java从JDK1.5开始提供了java.util.concurrent.atomic包,方便在多线程环境下进行原子操作。原子变量的底层使用了CPU提供的原子指令,但是不同的CPU架构可能提供的原子指令不一样,也有可能需要某种形式的内部锁,所以该方法不能绝对保证线程不被阻塞。包介绍:在at... 阅读全文
posted @ 2015-11-20 00:26 coldridgeValley 阅读(1252) 评论(0) 推荐(0) 编辑
摘要: 红色为核心类,其余为引申类无边框 阅读全文
posted @ 2015-11-20 00:25 coldridgeValley 阅读(870) 评论(0) 推荐(0) 编辑
摘要: CAS(compare and swap) 比较和交换 概述 cas在多线程中是一个保持同步的原子指令。它将内存中指定位置的值与所期望的值比较,只有当内存当中的值和期望的值相同的时候, 才会把内存中的值更新为一个新的值,这是一个原子的操作。如果内存中的值同时被其他线程操作那么此次更改将... 阅读全文
posted @ 2015-11-20 00:24 coldridgeValley 阅读(1023) 评论(0) 推荐(1) 编辑
摘要: 开坑! 阅读全文
posted @ 2015-11-20 00:17 coldridgeValley 阅读(787) 评论(0) 推荐(0) 编辑
摘要: 快速排序是基于冒泡排序的算法改进,算法的基本思想是分治的思想.关于分治思想有空写.基本的排序原理: 每次排序只发生在指定的边界内.然后把指定边界内的数组看作一个完整的子数组,将字数组的首位元素作为比较的基准(标准的算法是随机选择,而且有选择的算法,有空写)进行一次排序,此次单一排序的目的是将字数组中... 阅读全文
posted @ 2015-11-07 16:31 coldridgeValley 阅读(869) 评论(0) 推荐(0) 编辑
摘要: 冒泡排序 算法如其名,越小的元素会经由交换慢慢“浮”到序列的顶端.原理:一次排序,通过相邻的两个元素的比较,将较小的元素交换的序列的首位.举例说明注意:选择将最小的元素交换到序列的首位或将最大的元素交换到序列的末位或者将最小的元素交换到序列的末位或者将最大的元素交换到序列的首位会导致序列遍历的顺序以... 阅读全文
posted @ 2015-11-07 14:37 coldridgeValley 阅读(846) 评论(0) 推荐(0) 编辑
摘要: 希尔排序是插入排序的优化算法,时间复杂度为O(nlogn),也称为增量缩小的算法.希尔排序使用了一个序列h1,h2,h3...hk,称为增量序列,只要h1=1 任何增量序列都是可行的,不过有些增量序列可能会比另外一些增量序列更好一点.在使用增量hk排序以后,对每个i,都有a[i]> void she... 阅读全文
posted @ 2015-11-01 01:52 coldridgeValley 阅读(842) 评论(0) 推荐(0) 编辑
摘要: 外卖平台,订单的自动派发. 业务背景: 外卖平台,订单的自动派发. 流程: 1,顾客下单 2,平台收到订单,分配订单给配送员, 3,商家出餐 4,配送员取货 5,配送员配送 6,用户收货,反馈评价 ps: 2,3,4同步进... 阅读全文
posted @ 2015-10-13 15:29 coldridgeValley 阅读(879) 评论(0) 推荐(0) 编辑