end's coding life

赤子之心

Java线程池源码分析(二)

二.深入剖析线程池实现原理 在上一节我们从宏观上介绍了ThreadPoolExecutor,下面我们来深入解析一下线程池的具体实现原理,将从下面几个方面讲解:   1.线程池状态   2.任务的执行   3.线程池中的线程初始化   4.任务缓存队列及排队策略   5....

2016-02-29 14:01:06

阅读数:367

评论数:0

Java线程池源码分析(一)

在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题: 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。 那么有没有一种办法使得线程可以复...

2016-02-29 13:59:54

阅读数:349

评论数:0

HBase超详细介绍

1-HBase的安装 HBase是什么? HBase是Apache Hadoop中的一个子项目,Hbase依托于Hadoop的HDFS作为最基本存储基础单元,通过使用hadoop的DFS工具就可以看到这些这些数据 存储文件夹的结构,还可以通过Map/Reduce的框架(算法)对HBas...

2016-02-26 18:51:01

阅读数:858

评论数:0

redis 超全的操作

Redis::__construct 描述: 创建一个Redis客户端 范例: $redis = new Redis(); connect, open 描述: 实例连接到一个Redis. 参数:host: string        port: int 返回值:BOOL 成功...

2016-02-26 10:07:56

阅读数:777

评论数:0

高效全组合算法

项目里有个字符串是利用逗号分隔的及部分组合而成的,现在需要将这些被分割部分,最少0个最多全部,替换为星号,生成替换后的这一系列心字符串。例如:a,b,c这个字符串,处理后应该得到这七个结果:a,b,c  *,b,c  *,*,c  *,*,*  a,*,c  a,*,*  a,b,* 。这个问题的...

2016-02-25 18:00:37

阅读数:849

评论数:0

理解LinkedHashMap

1. LinkedHashMap概述: LinkedHashMap是HashMap的一个子类,它保留插入的顺序,如果需要输出的顺序和输入时的相同,那么就选用LinkedHashMap。    LinkedHashMap是Map接口的哈希表和链接列表实现,具有可预知的迭代顺序。此实现提供...

2016-02-24 14:17:10

阅读数:321

评论数:0

如何用消息系统避免分布式事务?

前阵子从支付宝转账1万块钱到余额宝,这是日常生活的一件普通小事,但作为互联网研发人员的职业病,我就思考支付宝扣除1万之后,如果系统挂掉怎么办,这时余额宝账户并没有增加1万,数据就会出现不一致状况了。 上述场景在各个类型的系统中都能找到相似影子,比如在电商系统中,当有用户下单后,除了在订单表插...

2016-02-24 11:31:04

阅读数:338

评论数:0

Java动态代理

Java提供的动态代理,是“代理模式”的一个实现。代理模式简介:http://www.cnblogs.com/endlu/p/5169749.html     静态代理有一定的弊端,为每一个被代理类都编写一个代理类会让系统变得臃肿,而且不够灵活。动态代理,是在运行时动态的生成一个代理类和代理对象...

2016-02-19 14:29:43

阅读数:628

评论数:0

10分钟看懂常用设计模式

对常见的设计模式进行通俗一定的介绍,并分别分析使用场景。将类似的模式进行对比,从多个方面分析不同的模式不同的出发点,从而达到了然于胸的目的。

2016-02-18 19:01:44

阅读数:873

评论数:0

访问者模式

上两篇文章中介绍的状态模式和策略模式结构有所类似,解决的问题的类型有所联系、又有所差异。本篇作为该设计模式系列的最后一篇模式介绍性的文章,将简单介绍访问者模式。这个模式在解决的问题的本质上,与上面两个模式还是有相同点的。状态模式是本身具有多个状态,可能由于自己的属性切换;策略模式是问题具有多种方案...

2016-02-17 17:50:46

阅读数:382

评论数:0

策略模式

设计模式之策略模式

2016-02-17 16:55:25

阅读数:410

评论数:0

程序员能力等级分析

前言        程序员的编程技能随着经验的积累,会逐步提高。我认为编程能力可以分为一些层次。下面通过两个维度展开编程能力层次模型的讨论。一个维度是编程技能层次,另一个维度是领域知识层次。   编程技能层次         编程技能层次,指的程序员设计和编写程序的能力。这...

2016-02-17 10:35:05

阅读数:1845

评论数:1

Linux性能问题急速诊断方法

当你为了解决一个性能问题登录到一台 Linux 服务器:在第一分钟你应该检查些什么?

2016-02-17 09:50:23

阅读数:865

评论数:0

状态模式

一款游戏中的某个BOSS,根据当前血量不同,有几种不同状态。满血1000时是平静状态,不会攻击玩家;小于1000大于500是攻击状态,会用普通的技能攻击离他最近的玩家;小于500大于0是狂暴状态,会发动终极技能周期性的对周围所有玩家造成大量伤害;等于0是死亡状态,会在尸体上提供随机装备给予玩家。在...

2016-02-16 16:48:55

阅读数:446

评论数:0

UML类图关系

继承、实现、依赖、关联、聚合、组合 1.继承 : 在UML中也称为泛化。指的是类和类、接口和接口之间的关系。继承了父一级的功能,同时增加自己新功能的关系。Java用extends关键字标识。 2.实现 : 一个class实现一个interface接口的功能。Java中关键字...

2016-02-16 15:10:45

阅读数:496

评论数:0

模板方法模式

在开发过程中,经常会出现这种情况:很多功能都包含几步骤来组合完成,其中一部分步骤几乎是固定不变的,剩余部分才会根据不同情况有所差异。如果每个这种功能都吧所有步骤重新定义实现一遍,会很麻烦,重复。例如JDBC的传统使用,很多时候为了一个小操作,不得不管理连接资源的打开/关闭,异常的处理。   ...

2016-02-12 19:30:20

阅读数:379

评论数:0

观察者模式

观察者模式(Observer Pattern):定义对象之间的一种一对多依赖关系,使得每当一个对象状态发生改变时,其相关依赖对象皆得到通知并被自动更新。观察者模式的别名包括发布-订阅(Publish/Subscribe)模式、模型-视图(Model/View)模式、源-监听器(Source/Lis...

2016-02-12 19:27:05

阅读数:377

评论数:0

备忘录模式

很多软件如制图、文字编辑软件,都需要记住一些历史状态来提供撤销的功能。备忘录模式就是为这种情况而生的。简单结构如下:     备忘录模式(Memento Pattern):在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样可以在以后将对象恢复到原先保存的状态。它是一种...

2016-02-12 18:27:06

阅读数:316

评论数:0

深入理解Java虚拟机----(十一)线程安全与锁优化

线程安全     为了深入讨论,不把线程安全当做非真即假的概念,我们把它分为5个层次。 不可变:不可变的数据是线程安全的。例如前面提到的final,被final修饰的基础数据类型,被正确构造后,就是不可变的,亦为线程安全的。如果是一个对象,需要保证他的行为不会对状态产生印象,例如Str...

2016-02-12 17:05:08

阅读数:1154

评论数:0

深入理解Java虚拟机----(十)Java内存模型与线程

Java虚拟机规范试图定义一种Java内存模型来消除不同硬件和操作系统的差异。JDK1.5(JSR-133)开始,Java内存模型终于算是开始完善起来。Java内存模型主要是目的是定义程序中可线程共享的变量的访问规则。它规定所有变量都存在主内存,每个线程有自己的工作内存,存储的是使用的变量的主内存...

2016-02-12 12:40:35

阅读数:690

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭