![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
mushui59
这个作者很懒,什么都没留下…
展开
-
(转)支持生产阻塞的线程池
在各种并发编程模型中,生产者-消费者模式大概是最常用的了。在实际工作中,对于生产消费的速度,通常需要做一下权衡。通常来说,生产任务的速度要大于消费的速度。一个细节问题是,队列长度,以及如何匹配生产和消费的速度。一个典型的生产者-消费者模型如下:在并发环境下利用J.U.C提供的Queue实现可以很方便地保证生产和消费过程中的线程安全。这里需要注意的是,Queue必须设置初始容量,防止...原创 2013-11-26 17:11:27 · 114 阅读 · 0 评论 -
Java枚举
Java在1.5之后,有了enum关键字,定义枚举类。它是一种特殊的类,同样可以有方法和属性,可以实现一个或多个接口,可以定义构造器。它与普通类区别:1.枚举类可实现一个或多个接口,使用enum定义的枚举类默认继承了java.lang.Enum类,而不是Object类。而java.lang.Enum类实现了java.lang.Serializable和java.lang.Comparable...原创 2013-09-15 23:25:01 · 60 阅读 · 0 评论 -
jstat命令
Jstat是JDK自带的一个轻量级小工具。全称“Java Virtual Machine statistics monitoring tool”,它位于java的bin目录下,主要利用JVM内建的指令对Java应用程序的资源和性能进行实时的命令行的监控,包括了对 Heap size和垃圾回收状况的监控。 语法结构:Usage: jstat -help|-options ...原创 2013-09-15 23:31:21 · 95 阅读 · 0 评论 -
HashMap和Hashtable的区别
首先来看这两个类:1public class Hashtable<K,V>2 extends Dictionary<K,V>3 implements Map<K,V>, Cloneable, java.io.Serializable {4 ...原创 2013-09-15 23:32:41 · 83 阅读 · 0 评论 -
基于Mybatis的通用Service层实现
首先抽象实体Bean的父类BaseModel,包括通用的创建时间、分页等基本信息:public abstract class BaseModel implements Serializable { private static final long serialVersionUID = -665036712667731957L; /** * 排序 升 降...2013-09-16 15:38:40 · 576 阅读 · 0 评论 -
ConcurrentHashMap分析与应用
ConcurrentHashMap类与 Hashtable 相似,都是线程安全的,但与 HashMap 不同,它不 允许将 null 用作键或值。 可以使用Iterator和Enumeration进行遍历,且不会抛出ConcurrentModificationException。不过,迭代器被设计成每次仅由一个线程使用。ConcurrentHashMap可以做到读取数据不加锁,并且其内...原创 2013-09-17 13:53:25 · 114 阅读 · 0 评论 -
自旋锁在生产者-消费者模型中避免假唤醒问题
先看一个有问题的只能轮替发生的生产者-消费者模型代码(源自http://www.iteye.com/problems/96126的问题): //生产/消费者模式public class Basket { Lock lock = new ReentrantLock(); // 产生Condition对象 Condition produced = loc...2013-09-17 22:42:18 · 184 阅读 · 0 评论 -
BlockingQueue阻塞队列分析(一)-ArrayBlockingQueue和LinkedBlockingQueue
BlockingQueue接口BlockingQueue接口继承自Queue接口:public interface BlockingQueue<E>extends Queue<E>与Queue队列相比,它是线程安全的。添加和移除元素有四类方式,其中add()、remove()、offer()、poll()、element()、peek()方法继承自Queue...原创 2013-09-18 16:22:03 · 149 阅读 · 0 评论 -
利用策略枚举重构代码
问题描述:在创建合同时,会选择一个何时付款的策略,比如,目前策略有: 合同执行开始时付款100%, 合同执行结束后付款100% 合同每月结算当月应付金额 ... 并且付款的策略还会改变。最初的代码使用一大串if...else...,如下: public List<PaymentPlan> resolve(ExecutionUni...2013-09-30 20:23:22 · 225 阅读 · 0 评论