java
文章平均质量分 72
瞎折腾的小码农
这个作者很懒,什么都没留下…
展开
-
springcloud五大组件之熔断器
springcloud五大组件之熔断器@Configuration( proxyBeanMethods = false)@ConditionalOnClass({Hystrix.class, HealthIndicator.class, HealthContributorAutoConfiguration.class})@AutoConfigureAfter({HealthContributorAutoConfiguration.class})public class HystrixAut原创 2021-05-17 16:23:04 · 612 阅读 · 0 评论 -
spring cloud五大组件之Eureka注册中心
spring cloud五大组件值Eureka注册中心一、原理 ---------------------------还缺个覆盖状态 Eureka注册中心用于服务的注册和发现,即是将服务信息注册到存储微服务信息的服务器,进行微服务调用时再取得服务相关信息进行调用。根据功能进行分类:服务注册、服务续约、服务下线。为保证服务的高可用,可进行集群部署,增加服务的同步功能。保证高可用性防止因网络问题造成的服务集体下线增加服务的自我保护功能。我们根据这些功能来看下具体的实现。二、注册和发现的实现 1)、服原创 2021-05-17 16:21:59 · 499 阅读 · 0 评论 -
Spring框架探索三(Bean的注入)
一、Spring注入流程如下所示。二、注入流程具体代码finishBeanFactoryInitialization自动注入Beanprotected void finishBeanFactoryInitialization(ConfigurableListableBeanFactory beanFactory) { // 将conversionservice实例化并加入到工厂 if (beanFactory.containsBean(CONVERSION_SERVICE_BEAN原创 2021-01-17 18:14:51 · 327 阅读 · 0 评论 -
Spring框架探索二(BeanDefinition的扫描注册)
一、下图为简单的扫描注入过程时序图二、扫描注入过程具体代码 spring的依赖注入是从SpringApplication的refreshContext(context)方法开始,具体流程如下;@Overridepublic void refresh() throws BeansException, IllegalStateException { synchronized (this.startupShutdownMonitor) { // 刷新前准备,close和active标原创 2021-01-17 18:13:31 · 308 阅读 · 0 评论 -
Spring框架探索一 (springboot配置环境)
Spring框架探索: spring作为一款轻量级的java开发框架,以其优越的特性被广泛使用在各个项目中。它主要提供两个功能IOC、AOP控制反转(依赖注入)和切面,极大的简化了工作者的开发工作。可它是如何工作的以及设计思路如何?接下来我们一起来探索。 spring boot的启动以添加了SpringBootApplication注解的类的SpringApplication.run方法开始。//自动扫描注解@SpringBootApplication(scanBasePackages="com原创 2021-01-17 18:10:45 · 379 阅读 · 2 评论 -
AQS的具体实现二:CountDownLatch与CyclicBarrier的具体实现
AQS的具体实现二:一、简介 CountDownLatch(线程计数器)与CyclicBarrier(可重复使用的栅栏),线程计数器和循环栅栏是两个用来进行同步的类,都是通过await方法来进行线程的阻塞,当执行线程数达到具体的数量时才会执行释放阻塞队列的方法,都是依赖于AbstractQueuedSynchronizer框架进行实现,存在于java.util.concurrent包下。二、区别 1、但CountDownLatch内部Sync通过实现AbstractQueuedSynchroni原创 2020-12-13 21:20:56 · 150 阅读 · 0 评论 -
AQS的具体实现一:ReentrantLock
AQS的具体实现一:ReentrantLock AQS的实现有多种形式,包括ReentrantLock、CountDownLatch、CyclicBarrier、ReentrantLock、Semaphore和ThreadPoolExecutor。ReentrantLock 可重入的独占锁:可重入指同一线程可以多次进入此锁,独占表示同一时刻只能够有一个线程持有该锁。其实现方式又有两种,分为公平和非公平锁。 非公平和公平锁:如下图,我们能看到其内部有两个实现类,公平锁与非公平锁。[外链图片转存失败,原创 2020-12-13 21:17:50 · 410 阅读 · 0 评论 -
AQS抽象队列同步框架
AQS一、AQS抽象队列同步框架:java中实现锁机制的形式有两种,一种是通过syschronized关键字来实现,另外一种既是通过抽象线程同步框架来实现。syschronized通过修改字节码加入监视器类来实现最终会调用cpu的锁来实现。而AQS是通过双向队列+volatile关键字来实现,相对syschronized其免去了字节码层面的修改,不用调用cpu的锁来实现,加锁释放锁更加的快捷,避免调用cpu锁导致的资源浪费。二、原理 1.属性 //共享锁标志 static final Node原创 2020-12-02 19:42:47 · 119 阅读 · 0 评论 -
重量级锁synchronized关键字
重量级锁synchronized关键字一、synchronized的作用1.可见性:synchronized关键字在线程解锁前必须把变量同步回主内存,在线程加锁前必须从主内存中重新获取最新的值。2.原子性:synchronized关键字保证每一个时刻只能一个线程持有该同步块,来保证其原子性。3.有序性:synchronized通过一个时刻只允许一个线程执行同步块,即使指令进行重排序仍旧不影响结果。它不会禁止指令重排序,为保证指令重排序最好的方法是禁止处理器优化和指令重排序。4.可重入行:synch原创 2020-11-28 00:36:17 · 207 阅读 · 0 评论