摘要: ReentranLock是java.util.concurrent.locks中的一个类.需要显示的进行unclock 提供了tryLock方法,锁被其他线程持有返回false,否则当前线程会持有锁,并返回true 可以通过构造函数声明一个公平锁,效率较非公平锁低,按队列顺序获取锁 提供了Reent 阅读全文
posted @ 2017-03-27 23:40 我_会飞的鱼 阅读(567) 评论(0) 推荐(0) 编辑
摘要: 一.网络通信模型:TCP/IP网络模型 二.网络IO的实现方式 1.BIO方式:一个线程只处理一个Socket 2.NIO方式:一个线程可以处理多个Socket 3.AIO方式:和NIO的区别是NIO在有通知时可以进行操作,AIO在有通知时操作已完成 三.负载均衡的方式 1.硬件负载均衡设备,透明代 阅读全文
posted @ 2017-03-26 18:13 我_会飞的鱼 阅读(224) 评论(0) 推荐(0) 编辑
摘要: Memcached:高性能的分布式内存缓存服务器 特征: u 协议简单: n 基于文本行的协议 u 基于libevent的事件处理: n 程序库,能实现连接数的增加,O(1)性能 u 内置内存存储方式 n 数据存储在内存,重启数据消失,在数据达到某个值时,基于LRU(Last Recently Us 阅读全文
posted @ 2017-03-25 22:58 我_会飞的鱼 阅读(216) 评论(0) 推荐(0) 编辑
摘要: MySQL数据库Query的优化 一.MySQL Query Optimizer基本工作原理. 二.Query语句优化基本思路和原则 a) 永远用小结果集驱动大的结果集,(Join语句) b) 尽可能在索引中完成排序 c) 只取自己需要的Columns d) 仅仅使用最有效的过滤条件 e) 尽可能避 阅读全文
posted @ 2017-03-24 23:22 我_会飞的鱼 阅读(216) 评论(0) 推荐(0) 编辑
摘要: 一.Mysql数据库锁定机制 1.行级锁定(row-level) 锁定对象的粒度最小,发生锁定资源争用的概率小,提高高并发系统的整体性能 粒度小,每次获取和释放锁做的事情更多,消耗大.行级锁最容易发生死锁 2.表级锁定(table-level) 最大粒度的锁,逻辑简单,负面影响小,获取锁和释放锁速度 阅读全文
posted @ 2017-03-24 00:14 我_会飞的鱼 阅读(269) 评论(0) 推荐(0) 编辑
摘要: 零.Mysql的储存引擎 1.MyISAM(默认):支持三种类型索引.B-Tree(最常用).R-Tree(很少用),Full-text(数据结构也是B-Tree) 2.Innodb(第三方) 支持事务,实现外键,锁定机制改进,多版本读取 3.NDB Cluster(分布式集群环境) 一.不适合在数 阅读全文
posted @ 2017-03-23 23:24 我_会飞的鱼 阅读(456) 评论(0) 推荐(0) 编辑
摘要: 一.Mysql的两层架构: 1.SQL Layer():除了处理底层数据的所有功能,包括权限判断,sql解析,执行计划优化,query cache等 子模块:1.初始化模块:Mysql Server启动时整个系统的初始化 2.核心API:对底层操作的优化, 3.网络交互模块:(实现底层交互的api) 阅读全文
posted @ 2017-03-21 00:22 我_会飞的鱼 阅读(414) 评论(0) 推荐(0) 编辑
摘要: 1.Spring对事务的控制,默认情况下只对继承自RuntimeException和Error的非检查型异常进行回滚 继承自Exception的检查型异常默认不回滚 2.非检查型异常可以不用捕获,检查型异常必须try语句块处理或者声明抛给上级,才可以 3.如果异常被try{}catch{}了,事务将 阅读全文
posted @ 2017-03-19 23:31 我_会飞的鱼 阅读(406) 评论(0) 推荐(0) 编辑
摘要: public static void main(String[] args) { Scanner sc=new Scanner(System.in); System.out.println("输入头的个数:"); int head=sc.nextInt(); System.out.println("输入腿的个数:"); ... 阅读全文
posted @ 2017-03-18 15:06 我_会飞的鱼 阅读(380) 评论(0) 推荐(0) 编辑
摘要: public static void main(String[] args) { Node[]nodes=new Node[10]; for(int i=0;i<10;i++){ nodes[i]=new Node(); nodes[i].data=i+""; } for(int i=... 阅读全文
posted @ 2017-03-18 14:44 我_会飞的鱼 阅读(176) 评论(0) 推荐(0) 编辑