摘要:
package com; import java.util.concurrent.Exchanger; /** * Created by yangyu on 16/11/28. */ /** * Exchanger用于进行线程间的数据交换; * 它提供一个同步点,在这个同步点,两个线程可以交换彼此的数据; * 两个线程通过exchange方法交换数据,如果一个线程先执行excha... 阅读全文
摘要:
package com; import java.util.concurrent.Semaphore; /** * Created by yangyu on 16/11/28. */ /** * Semaphore控制并发线程数量 * * 使用场景: * 当大批量的并发请求来到系统当中时,为了保证系统稳定,真正执行业务逻辑的线程其实数量有限; * 为了保证业务系统的稳定,不会... 阅读全文
摘要:
Spring AOP 源码记录: 1.AOP 入口ProxyFactoryBean.getObject()方法; 2.AOP实现: (1)实现InvocationHandler接口 (2)通过java.lang.reflect.Proxy.newProxyInstance生成代理类 3.JDK与cg 阅读全文
摘要:
package com; import java.util.Map; import java.util.concurrent.BrokenBarrierException; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.CyclicBarrier; /** * Created by ya... 阅读全文
摘要:
JDK提供了7中阻塞队列,这里介绍其中3中,剩余的以此类推原理相同。 1.ArrayBlockingQueue 2.LinkedBlockingQueue:链表实现的有界阻塞队列 3.PriorityBlockingQueue:支持优先级的无界阻塞队列 4.DelayQueue 5.Synchron 阅读全文
摘要:
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 ... 阅读全文
摘要:
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 != ... 阅读全文