- 博客(7)
- 资源 (5)
- 收藏
- 关注
原创 Java NIO - CountDownLatch
CountDownLatch如其所写,是一个倒计数的锁存器,当计数减至0时触发特定的事件。利用这种特性,可以让主线程等待子线程的结束。下面开启两个线程,一个用来插入订单操作,一个用来模拟合并订单操作。 @Test// @Transactional public void testAutoMergeSplit03() throws Exception {
2016-04-12 19:43:49 483
原创 Java NIO - Condition
Condition用来实现对应Object的wati,notify,notifyAll三个方法。在Condition中用await()替换wait(),用signal()替换notify() ,用signalAll()替换notifyAll(),传统线程之间的通讯Condition都可以实现。如下列子,我们实现一个读写操作,分为读写线程。package chp3.condi
2016-04-10 18:01:04 354
原创 Java NIO-Lock.unlock
unlock用来释放锁,使用lock保护临界区,但是临界区通常会出现异常,所以unlock我们会放在finall语句中执行。lock.lock();try{ //do something} finally { lock.unlock();}Lock的实现类ReentrantLock中unlock的实现来自其成员变量sync实现. public void
2016-04-10 12:31:26 482
原创 Mockito单元测试-answer
Answer接口说明对mock对象的方法进行调用预期的设定,可以通过thenReturn()来指定返回值,thenThrow()指定返回时所抛异常,通常来说这两个方法足以应对一般的需求。但有时我们需要自定义方法执行的返回结果,Answer接口就是满足这样的需求而存在的。另外,创建mock对象的时候所调用的方法也可以传入Answer的实例mock(java.lang.Class classT
2016-04-08 14:53:26 4505
原创 Java NIO-锁机制Lock
Java NIO提供Lock对象来实现对当前对象加锁。1,Lock接口方法详解:void lock()获取锁。如果锁不可用,出现线程调度,将会禁用当前线程,并且在获得锁之前,该线程将一直处于休眠状态。void lockInterruptibly() throws InterruptedException;如果当前线程未被中断则获取锁。如果锁可
2016-04-04 21:37:24 1253 1
原创 Java NIO - volatile
1,volatile 相当于synchronized弱实现,volatile关键字实现了类似synchronized的语义,却没有实现锁机制。 volatile关键字确保字段的更新已可预见的方式告诉其他线程。-1,Java存储模型不会对valatile关键字修饰的字段重排序,这个保证volatile关键字修饰的变量操作时会按指令出现的先后顺序执行。-2,volati
2016-04-03 14:50:14 549 1
原创 Java NIO -AtomicInteger
概述通常情况下,在Java中我们对++i,--i的操作都是非线程安全的。对于一个++i存在三个独立的操作,获取变量i当前的值,为该值+1。如下代码,多线程操作i++。public class UnsafeI { public static int num = 0; public static void main(String[] args) throws InterruptedEx
2016-04-03 13:24:11 458
《人件》中文版pdf
2015-01-05
jsp web聊天 群聊和私聊 源码和可运行程序
2013-05-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人