11 2016 档案

摘要:package com; import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; import java.util.concurrent.FutureTask; /** * Created by yangyu on 16/11/28. */ /** * FutureTa... 阅读全文
posted @ 2016-11-28 16:43 11楼的日记 阅读(1592) 评论(0) 推荐(0) 编辑
摘要:package com; import java.util.concurrent.*; /** * Created by yangyu on 16/11/28. */ /** * Callable and Future用法 * Callable可以被ExecutorService的submit方法使用,可以取线程执行的返回值; * * Future是返回值的封装类型: * g... 阅读全文
posted @ 2016-11-28 15:54 11楼的日记 阅读(1849) 评论(0) 推荐(0) 编辑
摘要:package com; import java.util.concurrent.Exchanger; /** * Created by yangyu on 16/11/28. */ /** * Exchanger用于进行线程间的数据交换; * 它提供一个同步点,在这个同步点,两个线程可以交换彼此的数据; * 两个线程通过exchange方法交换数据,如果一个线程先执行excha... 阅读全文
posted @ 2016-11-28 13:55 11楼的日记 阅读(673) 评论(0) 推荐(0) 编辑
摘要:package com; import java.util.concurrent.Semaphore; /** * Created by yangyu on 16/11/28. */ /** * Semaphore控制并发线程数量 * * 使用场景: * 当大批量的并发请求来到系统当中时,为了保证系统稳定,真正执行业务逻辑的线程其实数量有限; * 为了保证业务系统的稳定,不会... 阅读全文
posted @ 2016-11-28 12:52 11楼的日记 阅读(965) 评论(0) 推荐(0) 编辑
摘要:Spring AOP 源码记录: 1.AOP 入口ProxyFactoryBean.getObject()方法; 2.AOP实现: (1)实现InvocationHandler接口 (2)通过java.lang.reflect.Proxy.newProxyInstance生成代理类 3.JDK与cg 阅读全文
posted @ 2016-11-28 11:33 11楼的日记 阅读(217) 评论(0) 推荐(0) 编辑
摘要:package com; import java.util.Map; import java.util.concurrent.BrokenBarrierException; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.CyclicBarrier; /** * Created by ya... 阅读全文
posted @ 2016-11-28 11:31 11楼的日记 阅读(514) 评论(0) 推荐(0) 编辑
摘要:JDK提供了7中阻塞队列,这里介绍其中3中,剩余的以此类推原理相同。 1.ArrayBlockingQueue 2.LinkedBlockingQueue:链表实现的有界阻塞队列 3.PriorityBlockingQueue:支持优先级的无界阻塞队列 4.DelayQueue 5.Synchron 阅读全文
posted @ 2016-11-27 13:09 11楼的日记 阅读(1090) 评论(0) 推荐(0) 编辑
摘要:package com; import sun.misc.Unsafe; import java.lang.reflect.Field; /** * Created by yangyu on 16/11/24. */ public class TestUnsafe { public static void main(String[] args) { Node ... 阅读全文
posted @ 2016-11-24 17:56 11楼的日记 阅读(9155) 评论(2) 推荐(1) 编辑
摘要:public class Test { public static void main(String[] args) { int t = 0; int p = 0; int q = 0; int tail = 1; int head = 2; /** * 这个(t != ... 阅读全文
posted @ 2016-11-24 17:33 11楼的日记 阅读(431) 评论(0) 推荐(0) 编辑