并发编程(二)synchronized 和 ThreadLocal

并发编程(二)synchronized 和 ThreadLocal 一、synchronized 关键字 synchronized关键字解决的是多个线程之间访问资源的同步性,synchronized关键字可以保证被它修饰的方法或者代码块在任意时刻只能有一个线程执行。 另外,在 Java 早期版本中,synchronized属于重量级锁,效率低下,因为监视器锁(monitor)是依赖于底层的操作系统的 Mutex Lock 来实现的,Java 的线程是映射到操作系统的原生线程之上...

read more..

并发编程(一)死锁

并发编程(一)死锁 什么是死锁 多个线程同时被阻塞,它们中的一个或者全部都在等待某个资源被释放。由于线程被无限期地阻塞,因此程序不可能正常终止。 死锁是指多个线程因竞争资源而造成的一种僵局(互相等待),若无外力作用,这些进程都将无法向前推进。 演示死锁    private static Object resource1 = new Object();//资源 1    private static Object resource2 = new Object(...

read more..

基于Redis的分布式锁Redisson的使用

基于Redis的分布式锁Redisson的使用 问题产生:分布式环境下,synchronized同步锁是控制不住并发的 官方文档:点击进入 原理分析:点击进入 使用: 一、导入依赖 <dependency>  <groupId>org.redisson</groupId>  <artifactId>redisson</artifactId>  <version>2.7.0</version></dependency><dependency>      <g...

read more..

Spring Cloud Config统一配置管理

Spring Cloud Config统一配置管理 Spring Cloud Config可以对微服务配置进行统一的外部管理,并且默认采用Git来管理配置信息。相对于传统的每个微服务对应一份自个儿的配置文件来说,通过Spring Cloud Config统一管理所有微服务配置具有如下优点:1.集中管理微服务配置,当微服务数量众多的时候,使用这种方式会更为方便;2.通过Git管理微服务配置,方便追踪配置修改记录;3.可以在应用运行期间修改配置,...

read more..

Spring Cloud Zuul服务网关

Spring Cloud Zuul服务网关 在微服务的架构中,服务网关就是一个介于客户端与服务端之间的中间层。在这种情况下,客户端只需要跟服务网关交互,无需调用具体的微服务接口。这样的好处在于,客户端可以降低复杂性;对于需要认证的服务,只需要在服务网关配置即可;同样也方便后期微服务的变更和重构,即微服务接口变更只需在服务网关调整配置即可,无需更改客户端代码。 Zuul是一款由Netflix开发的微服务网...

read more..