![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JDK
狄龙疤
人生苦短,及时行乐
展开
-
模仿 @Cacheable 实现自定义的 Cacheable 注解( 利用 BeanPostProcessor 和 cglib 对 spring 的 bean 进行二次代理 )
import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;@Target({ ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)public @interface EnableMyCa.原创 2021-10-14 13:24:39 · 386 阅读 · 0 评论 -
jdk源码阅读总结:
1. Set "投机取巧" 内部依赖 Map 实现 ( 如下所示为 HashSet 的实现) :public class HashSet<E> extends AbstractSet<E> implements Set<E>, Cloneable, java.io.Serializable{ ... private transien...原创 2019-08-24 18:12:55 · 180 阅读 · 0 评论 -
java quartz 定时器核心源代码阅读
this.schedThread 的类型是 org.quartz.core.QuartzSchedulerThread extends java.lang.Thread,下面是截取的类QuartzSchedulerThread 的 run 方法的一部分:可见一直死循环,锁等待在 this.sigLock 处,直到 this.togglePause( false ) ( 将 th...原创 2019-08-27 16:14:24 · 600 阅读 · 0 评论 -
java 使用 sleep + interrupt 实现互斥锁效果
import java.util.*;import java.util.concurrent.CountDownLatch; public class Test { private static int threadCount = 300; private static int eachLoopTime = 100; private static int test...原创 2019-09-13 15:47:30 · 175 阅读 · 0 评论 -
JAVA 两个线程,一个线程打印1-10,另一个线程打印1-20,线程互不抢占,轮流打印20遍 用信号量如何实现?
import java.util.Random;import java.util.concurrent.Semaphore;public class Test { public static void main(String[] args){ Semaphore semaphore = new Semaphore(1); final boolean...原创 2019-09-16 17:44:24 · 531 阅读 · 0 评论