2018年3月10日

FreeMarker(六)全局配置

摘要: 全局配置基本与有关freemarker.template.Configuration相关。 /** * 较通用的FreeMarkers工具类 * * @author ChenSS 2017-10-19 * @date 2020-12-21 Mr.css 尝试使用ClassForTemplateLoa 阅读全文

posted @ 2018-03-10 01:18 疯狂的妞妞 阅读(1417) 评论(0) 推荐(0) 编辑

2018年2月16日

并发编程 - 抽象锁AbstractQueuedSynchronizer

摘要: 抽象锁 AbstractQueuedSynchronizer 很难去翻译这个词,抽象排队同步器?这里姑且叫抽象锁吧。 抽象锁只是一个抽象类,锁封装了一些锁的常规操作,包括信号量、倒数锁、可重入锁,内部代码都包含了抽象同步锁的实现类。 抽象同步锁用到了Unsafe类,Unsafe虽然在Java的基础包 阅读全文

posted @ 2018-02-16 18:11 疯狂的妞妞 阅读(380) 评论(0) 推荐(0) 编辑

并发编程 - 可重入锁ReentrantLock

摘要: 可重入锁 其实 synchronized 就是一个可重入锁,而 ReentrantLock 具有与使用 synchronized 方法和语句所访问的隐式监视器锁相同的一些基本行为和语义,但 ReentrantLock 的功能更强大。 可重入锁“可重入”的意思就是:当前线程获取了一个锁,就可以进入任何 阅读全文

posted @ 2018-02-16 17:51 疯狂的妞妞 阅读(110) 评论(0) 推荐(0) 编辑

2018年2月3日

并发编程 - 线程屏障CyclicBarrier

摘要: CyclicBarrier 直译是:循环屏障、可重用屏障。日常交流过程中,也可能称作:线程屏障。 跟信号量、倒数锁一样,都可以简单地实现“多个子线程执行完毕,主线程开始执行”的功能。 而屏障锁是其中较为特殊的: 几个线程互相等待,直到某个公共屏障点 (common barrier point),它们 阅读全文

posted @ 2018-02-03 08:36 疯狂的妞妞 阅读(241) 评论(0) 推荐(0) 编辑

并发编程 - 倒数锁CountDownLatch

摘要: CountDownLatch 倒数锁,顾名思义,需要给定一个初始值,每次调用计数减一,计数到达零之前,线程将一直受阻塞,计数到零之后,会释放所有等待的线程。 业务场景:主线程需要5个并发的初始化操作,5个线程全部执行完毕,主线程开始执行。 /** * @author ChenSS on 2018年2 阅读全文

posted @ 2018-02-03 08:33 疯狂的妞妞 阅读(112) 评论(0) 推荐(0) 编辑

并发编程 - Semaphore

摘要: Semaphore 直译:发出信号、打旗语,在编程中通常被称为:计数信号量,或者信号量。 举个生活案例 比如说旅店有10个单人间,有非常多的人要住; 最多只会只有10个人拿到钥匙; 没拿到钥匙的人非要住,那就只能等了; 而拿走钥匙的人,不住了那就必须退还钥匙,不然别人就没办法住。 信号量的使用类似于 阅读全文

posted @ 2018-02-03 08:29 疯狂的妞妞 阅读(161) 评论(0) 推荐(0) 编辑

2018年2月2日

队列(二)——优先队列PriorityQueue

摘要: 队列通常采用FIFO(先进先出)策略,可以满足多数情况下的开发需求,但是也有其不足之处。例如: 我要小明帮我买早餐, 第一次,“小明,你后天帮我买牛奶吧!”, 过了一会儿,“小明,你明天帮我买豆浆呗!”。 这个案例中,我先叫小明买的牛奶,再叫他买的豆浆,如果按照普通队列,按顺序执行,先买牛奶显然是错 阅读全文

posted @ 2018-02-02 10:40 疯狂的妞妞 阅读(169) 评论(0) 推荐(0) 编辑

队列(一)——阻塞队列BlockingQueue

摘要: 队列 其接口Queue,Queue继承自Collection,因此,队列也具备Collection的基本特征。多数的实现类位于java.util.concurrent,与线程池位于同一个包下,大多数的队列都与线程和锁挂钩,少量位于java.util,比如LinkedList、PriorityQueu 阅读全文

posted @ 2018-02-02 10:33 疯狂的妞妞 阅读(309) 评论(0) 推荐(0) 编辑

2017年12月21日

Spring框架--注册代理类

摘要: 最近我遇到了一个难题,如下图,禁止任何类继承A这个接口,而程序正常运行,怎么实现? (换种问法,就是如何实现Mybatis的配置方式) 了解代理模式的,一看就知道,要使用动态代理的知识,但,问题的难点不在这; 难点是要把代理类,注册到Spring容器中,使用@Autowired可以获取到你的代理类。 阅读全文

posted @ 2017-12-21 21:55 疯狂的妞妞 阅读(205) 评论(0) 推荐(0) 编辑

Spring框架--静态工厂(常规使用)

摘要: 常规用法,没什么好说的,一看就懂 注解和Xml配置混用 public class BeanFactory { public Object getInstance(int a) throws Exception { if(a==1){ return new HelloWorld1(); }else{ 阅读全文

posted @ 2017-12-21 19:32 疯狂的妞妞 阅读(111) 评论(0) 推荐(0) 编辑

导航