摘要: 1.前言 当今互联网发展的非常快,每当重大“节日”时,一些网站宕机几乎成为一种规律,例如双十一,过年抢火车票等等。 当存储海量二三维数据的GIS Web应用发生宕机时,所带来的后果是十分严重的。 2.单点失效 先解释下什么是单点失效。 举个简单例子就是:网站就一台服务器,当这台服务器挂了,网站就没办 阅读全文
posted @ 2017-03-02 20:05 esther-qing 阅读(766) 评论(0) 推荐(0) 编辑
摘要: [转]JVM锁机制volatile/synchronized/lock 1.volatile实现原理 (1)聊聊并发(一)——深入分析Volatile的实现原理 --硬件级别锁实现,Lock前缀指令会引起处理器缓存(CPU高级缓存L1/L2/L3)回写到内存。一个处理器的缓存回写到内存会导致其他处理 阅读全文
posted @ 2017-03-02 20:04 esther-qing 阅读(2686) 评论(0) 推荐(0) 编辑
摘要: 但这篇博文实际上是“半分享半讨论”的博文: 1) 半分享是我将说下我所了解到的关于今天主题所涉及的几种方案。 2) 半讨论是我希望大家对各个方案都说说自己的见解,更加希望大家能提出更好的方案。(我还另外提问在此:http://q.cnblogs.com/q/53552/上面已有几位园友回复(感谢du 阅读全文
posted @ 2017-03-02 20:03 esther-qing 阅读(1365) 评论(0) 推荐(0) 编辑
摘要: 前言: BlockingQueue很好的解决了多线程中,如何高效安全“传输”数据的问题。通过这些高效并且线程安全的队列类,为我们快速搭建高质量的多线程程序带来极大的便利。本文详细介绍了BlockingQueue家庭中的两个重要成员,包括他们各自的功能以及常见使用场景。认识BlockingQueue 阅读全文
posted @ 2017-03-02 20:01 esther-qing 阅读(4430) 评论(0) 推荐(0) 编辑
摘要: Java NIO原理图文分析及代码实现 前言: 最近在分析hadoop的RPC(Remote Procedure Call Protocol ,远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。可以参考:http://baike.baidu.com/vie 阅读全文
posted @ 2017-03-02 19:56 esther-qing 阅读(286) 评论(0) 推荐(0) 编辑
摘要: IO的方式通常分为几种,同步阻塞的BIO、同步非阻塞的NIO、异步非阻塞的AIO。 一、BIO 在JDK1.4出来之前,我们建立网络连接的时候采用BIO模式,需要先在服务端启动一个ServerSocket,然后在客户端启动Socket来对服务端进行通信,默认情况下服务端需要对每个请求建立一堆线程等待 阅读全文
posted @ 2017-03-02 19:54 esther-qing 阅读(2682) 评论(0) 推荐(0) 编辑
摘要: I.CountDownLatch 和 CyclicBarrier 的运用 CountDownlatch: 定义: 其是一个线程同步的辅助工具,通过它可以做到使一条线程一直阻塞等待,直到其他线程完成其所处理的任务。一个特性就是它不要求调用countDown方法的线程等到计数到达0时才继续,而在所有线程 阅读全文
posted @ 2017-03-02 19:53 esther-qing 阅读(292) 评论(0) 推荐(0) 编辑
摘要: 这次说一下 JUC 中的同步器三个主要的成员:CountDownLatch、CyclicBarrier 和 Semaphore(不知道有没有初学者觉得这三个的名字不太好记)。这三个是 JUC 中较为常用的同步器,通过它们可以方便地实现很多线程之间协作的功能。(下面的代码出自 JDK 文档) Coun 阅读全文
posted @ 2017-03-02 19:50 esther-qing 阅读(291) 评论(0) 推荐(0) 编辑
摘要: 1、类说明: 一个同步辅助类,它允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point)。在涉及一组固定大小的线程的程序中,这些线程必须不时地互相等待,此时 CyclicBarrier 很有用。因为该 barrier 在释放等待线程后可以重用,所以称它为循环 的 b 阅读全文
posted @ 2017-03-02 19:48 esther-qing 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 原文地址:http://blog.csdn.net/xin_jmail/article/details/25975085 Map主要用于存储健值对,根据键得到值,因此不允许键重复(重复了覆盖了),但允许值重复。 Hashmap 是一个最常用的Map,它根据键的HashCode 值存储数据,根据键可以 阅读全文
posted @ 2017-03-02 19:38 esther-qing 阅读(4115) 评论(0) 推荐(0) 编辑
摘要: 原文地址:http://blog.csdn.net/free0sky/article/details/7927275 一、String,StringBuffer, StringBuilder 的区别是什么?String为什么是不可变的? 答: 1、String是字符串常量,StringBuffer和 阅读全文
posted @ 2017-03-02 19:32 esther-qing 阅读(591) 评论(0) 推荐(0) 编辑
摘要: java为数据结构中的映射定义了一个接口java.util.Map,而HashMap Hashtable和TreeMap就是它的实现类。Map是将键映射到值的对象,一个映射不能包含重复的键;每个键最多只能映射一个一个值。 Hashmap 是一个最常用的Map,它根据键的HashCode 值存储数据, 阅读全文
posted @ 2017-03-02 19:26 esther-qing 阅读(1253) 评论(0) 推荐(0) 编辑
摘要: 原文:http://blog.csdn.net/u014136713/article/details/52089156 Collection ├List │├LinkedList │├ArrayList │└Vector │ └Stack └Set Map ├Hashtable ├HashMap └ 阅读全文
posted @ 2017-03-02 18:10 esther-qing 阅读(346) 评论(0) 推荐(0) 编辑
摘要: 原文地址:http://www.cnblogs.com/AprilCal/p/5426007.html 理由一:无需再考虑可序列化的情况 《effective java》第77条:对于实例控制,枚举类型优先于readResolve 说到readResolve,有的人可能会不甚清楚其作用,简单来说,r 阅读全文
posted @ 2017-03-02 16:16 esther-qing 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 1,volatile 它所修饰的变量不保留拷贝,直接访问主内存中的。 在Java内存模型中,有main memory,每个线程也有自己的memory (例如寄存器)。为了性能,一个线程会在自己的memory中保持要访问的变量的副本。这样就会出现同一个变 量在某个瞬间,在一个线程的memory中的值可 阅读全文
posted @ 2017-03-02 16:13 esther-qing 阅读(2090) 评论(0) 推荐(0) 编辑
摘要: 类的设计原则 一. Dependency Inversion Principle (DIP) - 依赖倒置原则 依赖:在程序设计中,如果一个模块a使用或调用了另一个模块b,我们称模块a依赖模块b。 高层模块与低层模块:往往在一个应用程序中,我们有一些低层次的类,这些类实现了一些基本的或初级的操作,我 阅读全文
posted @ 2017-03-02 14:56 esther-qing 阅读(9675) 评论(1) 推荐(0) 编辑
摘要: 定义:动态给一个对象添加一些额外的职责,就象在墙上刷油漆.使用Decorator模式相比用生成子类方式达到功能的扩充显得更为灵活。 设计初衷:通常可以使用继承来实现功能的拓展,如果这些需要拓展的功能的种类很繁多,那么势必生成很多子类,增加系统的复杂性,同时,使用继承实现功能拓展,我们必须可预见这些拓 阅读全文
posted @ 2017-03-02 14:15 esther-qing 阅读(195) 评论(0) 推荐(0) 编辑
摘要: T3先执行,在T3的run中,调用t2.join,让t2执行完成后再执行t3 在T2的run中,调用t1.join,让t1执行完成后再让T2执行 public class JoinTest { // 1.现在有T1、T2、T3三个线程,你怎样保证T2在T1执行完后执行,T3在T2执行完后执行 pub 阅读全文
posted @ 2017-03-02 11:14 esther-qing 阅读(917) 评论(0) 推荐(0) 编辑
摘要: 1.Singleton指仅仅被实例化一次的类。Singleton通常被用来代表那些本质上唯一的系统组件,如窗口管理器或者文件系统。使类称为Singleton会使它的客户端调试变的十分困难,因为无法给Singleton替换模拟实现,除非它实现一个充当其类型的接口. 2.在Java1.5发行版本之前,实 阅读全文
posted @ 2017-03-02 10:58 esther-qing 阅读(760) 评论(0) 推荐(0) 编辑