Java
xerjava
这个作者很懒,什么都没留下…
展开
-
迭代器实现中的线程安全问题
如果考虑到多线程访问,当一个线程正在迭代某个集合,而另一个线程修改了集合的内容时,设计方向:1. 直接抛异常,ConcurrentModificationException;2. 可正常迭代: a. 不能保证数据一致性;如ConcurrentHashMap,(虽然迭代算法没看懂)迭代过程中有可能包括新更新的数据,有可能存在旧数据;b. 能保证数据一致性: b.1 snapshot;如CopyOnWriteArray,反映的是...原创 2021-07-09 17:06:19 · 953 阅读 · 0 评论 -
ScheduledThreadPool如何实现定时执行及其它问题概述
一、如何实现定时执行关键组件:DelayedWorkQueue、ScheduledFutureTask;DelayedWorkQueueSpecialized delay queue(延迟队列:是一个无界的BlockingQueue,其中的对象只能在其到期时才能从队列中取走,且队头对象的延迟到期时间最长(heap-based data structure))。在ScheduledThreadPoolExecutor类中定义,队列中元素类型为ScheduledFutureTask;Sche原创 2021-07-05 16:20:55 · 595 阅读 · 0 评论 -
传送带:AOP原理
静态代理:AspectJ原理:编译时织入切面代码,生成新增强后的代理类;(写死型)动态代理:Spring aop原理:运行时生成新代理类(用后即抛);(动态型)实现工具:JDK动态代理工具;cglib;传送带:两篇博客说得很清楚了https://juejin.im/post/591d8c8ba22b9d00585007dd#heading-9https://blog....原创 2020-01-17 00:14:37 · 170 阅读 · 0 评论 -
关于fullGC的总结
1. 描述相对的是youngGC 源于Java堆的内存结构:分代,新生代和老年代 fullGC即在新生代和老年代都进行垃圾回收2. fullGC的影响GC过程中导致服务不可用,降低吞吐率3. 如何降低fullGC带来的影响fullGC长起来可达到5~6s从降低fullGC频率和减少fullGC时长的角度,考虑降低其带来的影响减少fullGC时长 降低fullGC频率...原创 2020-01-09 11:22:38 · 874 阅读 · 0 评论