- 博客(12)
- 资源 (2)
- 问答 (2)
- 收藏
- 关注
原创 java.nio.BufferUnderflowException 分析
在写一个简单的Buffer的小例子的时候,抛出一个异常:Exception in thread "main" java.nio.BufferUnderflowException at java.nio.Buffer.nextGetIndex(Buffer.java:498) at java.nio.HeapByteBuffer.getChar(HeapByteBuffer.ja...
2014-04-28 17:16:58 3029
原创 ThreadLocal 管理 HttpSession
最近在用spring security控制系统的权限, 在用户登陆的时候,在方法loadUserByUsername里验证用户名是否正确时,想获取HttpSession,并把登陆用户保存到session中,此时发现在当前方法中无法获取HttpSession;类似的,在系统中,在无法获取HttpSession的时候,想使用session中保存的数据是很困难的;在我们项目中,我们是这样解决...
2014-04-24 15:52:45 491
原创 javamelody java web 性能监控工具
最近一直在优化系统性能,优化代码,加缓存等一系列措施,可是不知道究竟提高了多少,系统性能瓶颈在哪里,所以从网上找了几个常用的java web性能监控工具,这几个工具都是开源的,各有各的优缺点,根据自己的需要来使用1 javamelody (此部分转载自:http://zhumeng8337797.blog.163.com/blog/static/10076891420123270148...
2014-04-18 09:48:45 342
原创 Semaphore 使用案例
Semaphore即信号量,可以被多个线程获取,下面是一个具体的例子,和Lock配合使用,模拟有三台打印机,一次允许三个线程使用空闲的打印机,代码如下:package thread;import java.util.concurrent.Semaphore;import java.util.concurrent.locks.Lock;import java.util.c...
2014-04-10 11:16:13 199
原创 Thread UncaughtExceptionHandler
做web开发的时候,一般都是在Controller统一捕捉异常,在业务逻辑里抛出自定义的异常;如果代码中使用了多线程,线程中出错,或者你在线程中抛出一个异常,在最外层Controller里是无法捕捉到线程中的异常的,Thread类中定义了一个内部接口UncaughtExceptionHandler,此接口用来统一处理线程出错后的处理,自己可定义一个类,来处理对应的错误class ...
2014-04-09 16:16:42 267
原创 ArrayBlockingQueue 源码赏析
ArrayBlockingQueue为BlockingQueue的实现类,常用的阻塞队列,先来看一下次类的成员变量: /** 存放数据的数组*/ final Object[] items; /**队列出口数据在数组中的下标*/ int takeIndex; /**队列入口在数组中的下标*/ int putIndex...
2014-04-08 20:54:26 79
原创 生产者消费者 BlockingQueue 实现
BlockingQueue是一个线程安全的队列,本身的部分方法实现了线程之间的调度,实现生产者消费者非常方便,比synchronized,wait更容易控制,不过看BlockingQueue的实现类ArrayBlockingQueue的源码,主要还是使用Lock和条件变量Condition来实现,足以见的Lock的灵活和强大,下面是我写的实现:import java.util.concurr...
2014-04-08 20:28:55 122
原创 BlockingQueue深入分析(转载)
本文转载自:http://www.2cto.com/kf/201212/175028.html一、概述: BlockingQueue作为线程容器,可以为线程同步提供有力的保障。 二、BlockingQueue定义的常用方法 1.BlockingQueue定义的常用方法如下: 抛出异常 特殊值 阻塞 超时 插入 add(e) offer(e) put(e) offer(e, tim...
2014-04-08 16:51:27 92
原创 SimpleDateFormat ThreaLocal 线程不安全 性能问题
使用simpleDateFormat的时候,有时会报错:java.lang.NumberFormatException: multiple points 报此错是因为SimpleDateFormat是线程非安全的,如果在每个方法中使用到SimpleDateFormat对象的时候,就会短暂的创建SimpleDateFormat对象,方法执行完后被回收,这样做内存开销比较大;在类中定义一个...
2014-04-08 15:19:57 92
原创 ReentrantReadWriteLock
1 写锁排斥对象上所有方法的读写锁 2 读锁排斥对象上所有方法写锁,不排斥读锁 3 log4j是线程安全的
2014-04-03 11:35:30 83
原创 生产者消费者 Lock Condition实现
网上有很多生产者消费者模型,很多都是基于synchronized, wait, notify的,也有基于Lock的,下面是我用Lock, Condition实现的. 1 仓库: class GodOwn { //声明锁对象 private Lock lock = new ReentrantLock(); //当仓库中的物品数量不够消费的条...
2014-04-02 10:40:28 113
原创 linux 下安装jdk 1.7
1 下载jdk 1.7 linux版本 http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html 2. 将下载的文件解压缩到/usr/local/development/jdk1.7.0_04目录。 3. 创建文件/etc/profile.d/developm...
2014-04-01 21:52:24 369
sonatype nexus 在局域网内无法访问?
2014-03-10
spring @Transactional 事务不能回滚
2013-11-01
TA创建的收藏夹 TA关注的收藏夹
TA关注的人