首页 » 2018 » 四月

几种单例模式

 

懒汉模式_多线程安全 /** * ${todo} 类作用:可见性和锁实现单例模式_懒汉模式 */ public class VolatileSynchroized { private static volatile VolatileSynchroized si … 阅读全文

SpringMVC工作原理

 

SpringMVC工作原理 原理图 流程 1. 前端request请求到dispatchServlet前端控制器; 2. dispatchServlet根据请求找HandlerMapping; 3. handlerMapping返回handler给dispat … 阅读全文

死锁

 

死锁的介绍 何为死锁:当两个或两个以上的进程运行时,因请求资源而保持相互等待,没有外力进入时,进程无法进行下去. 产生死锁的四个条件: 1. 互斥:当锁被A线程所持有时,其他线程无法获得此资源 2. 请求与保持:当无法获取下一步资源和锁的时候,线程保持等待; … 阅读全文

semaphore信号灯

 

并发之信号灯_semaphore 概念:可以维护访问自身线程的个数,并保持同步,acquire获得许可,release释放一个许可. 扩展 1. 配合线程池使用,semaphore构造参数的数字决定线程数. 2. 当构造参数为1时,可实现互斥锁;同synchr … 阅读全文

volatile特性

 

volatile总结 1.刷新内存,使共享数据线程间相互可见----内存可见性 了解内存可见性之前,需了解内存模型的读写方式,每个线程读写变量都是将主内存里面的数据拷贝一份到本地内存,然后对数据进行操作,最后刷新到主内存中去;所以当多个线程间同时对共同数据拷贝 … 阅读全文