线程池的配置和监控

 1、合理的配置线程池 要想合理的配置线程池,就必须首先分析任务特性,可以从以下几个角度来进行分析: 任务的性质:CPU密集型任务,IO密集型任务和混合型任务。 任务的优先级:高,中和低。 任务的执行时间:长,中和短。 任务的依赖性:是否依赖其他系统资源,如数据库连接。 任务性质不同的任务可以用不同规模的线程池分开处理。CPU密集型任务配置尽可能小的线程,如配置Ncpu+1个线程的线程池 […]

JDK设计模式(四)原型模式

用原型实例指定创建对象的种类,并且通过复制这些原型创建新的对象。 在原型模式中,所发动创建的对象通过请求原型对象来拷贝原型对象自己来实现创建过程,当然所发动创建的对象需要知道原型对象的类型。这里也就是说所发动创建的对象只需要知道原型对象的类型就可以获得更多的原型实例对象,至于这些原型对象时如何创建的根本不需要关心,其类图如下所示。     原型模式主要包含如下三个角色: Pro […]

JDK设计模式(三)建造者模式

将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。 建造模式是将复杂的内部创建封装在内部,对于外部调用的人来说,只需要传入建造者和建造工具,对于内部是如何建造成成品的,调用者无需关心,其类图如下。 Product : 产品类,由多个部件构成。 class Product { List<String> parts = new ArrayList<String&g […]

Java锁(二)ReentrantLock独占锁分析

    ReentrantLock的功能是实现代码段的并发访问控制,是一种排它锁,也就是通常意义上所说的锁,内部有两种实现NonfairSync和FairSync,公平锁和非公平锁,默认采用非公平锁策略。ReentrantLock的实现不仅可以替代隐式的synchronized关键字,而且能够提供超过关键字本身的多种功能。 1、ReentrantLock的使 […]

JDK设计模式(二)工厂模式

工厂模式是我们最常用的实例化对象模式,使用工厂方法代替new操作的一种模式,使用工厂模式,可能多做一些工作,但会给你系统带来更大的可扩展性和尽量少的修改量。 1、简单工厂模式 简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一。 简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最 […]

JDK设计模式(一)单例模式

单例模式确保一个类只有一个实例,并提供一个全局访问点。          其类图如下所示。   本文主要从饿汉式,懒汉式,懒汉式改进,来讲解单例模式。 1、饿汉式单例 饿汉式单例类是在Java 语言里实现得最为简便的单例类。在类被加载时,就会将自己实例化。 public class Singleton { private static S […]