3 bThinker

尚未进行身份认证

灵动

等级
TA的排名 5w+

深入理解Semaphore原理

深入理解Semaphore原理和源码解析一、Semaphore的简述 Semaphore是计数信号量。Semaphore管理一系列许可证。每个acquire方法阻塞,直到有一个许可证可以获得然后拿走一个许可证;每个release方法增加一个许可证,这可能会释放一个阻塞的acquire方法。然而,其实并没有实...

2020-02-25 16:07:38

深入理解CyclicBarrier原理

深入理解CyclicBarrier原理和源码解析一、简介CyclicBarrier也叫同步屏障、或者循环栅栏,允许让一组线程到达一个屏障(也可以叫同步点)时被阻塞,直到最后一个线程到达屏障时,屏障才会开门,所有被屏障拦截的线程才会继续运行。现实生活中我们经常会遇到这样的情景,在进行某个活动前需要等待人全部都...

2020-02-25 16:06:26

深入理解CountDownLatch原理

深入理解CountDownLatch原理一、简介CountDownLatch是一个同步工具类,它允许一个或多个线程一直等待,直到其他线程执行完后再执行。例如,应用程序的主线程希望在负责启动框架服务的线程已经启动所有框架服务之后执行。CountDownLatch是在java1.5被引入的,跟它一起被引入的并发工具类还...

2020-02-25 16:03:16

深入理解ReentrantLock原理

深入理解ReentrantLock原理一、前言  我们在分析ReentrantLock源码之前最好先了解AQS,因为ReentrantLock是基于AQS实现的。AQS源码分析在之前的博客已经进行了深入分析。传送门:深入理解AQS(AbstractQueuedSynchronizer)二、Reent...

2020-02-25 16:01:02

深入理解AQS(AbstractQueuedSynchronizer)

深入理解AQS(AbstractQueuedSynchronizer)AbstractQueuedSynchronizer(AQS)是JDK中实现并发编程的核心,平时我们工作中经常用到的ReentrantLock,CountDownLatch,Semaphore等都是基于它来实现的。AQS类中维护了一个双向链表(FIFO队列), 如下...

2020-02-25 15:58:00

面试:多线程,wait/notifyall 模拟枪的压弹和射击

面试:多线程,wait/notifyall 模拟枪的压弹和射击面试题:采用多线程技术,例如wait/notify,设计实现一个符合生产者和消费者问题的程序,对某一个对象(枪膛)进行操作,其最大容量是20颗子弹,生产者线程是一个压入线程,它不断向枪膛中压入子弹,消费者线程是一个射出线程,它不断从枪膛中射出子弹。package com.exampl...

2020-02-13 15:11:15

Netty实现简单的Socket通讯

Netty实现简单的Socket通讯Netty简介Netty是由JBOSS提供的一个java开源框架。Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。也就是说,Netty 是一个基于NIO的客户、服务器端编程框架,使用Netty...

2020-01-19 12:15:08

Spring Cloud学习笔记【十一】微服务网关Zuul的过滤和限流

Spring Cloud学习笔记【十一】微服务网关Zuul的使用和原理

2020-01-17 10:55:17

Spring Cloud学习笔记【十】微服务网关Zuul的使用与了解

Spring Cloud学习笔记【九】微服务网关Zuul的使用与了解

2020-01-15 17:58:25

Spring Cloud学习笔记【九】消息驱动Stream的使用与详解

Spring Cloud学习笔记【九】消息驱动Stream的使用与详解一、Stream简介官方定义如下:Spring Cloud Stream是一个框架,用于构建与共享消息传递系统连接的高度可伸缩的事件驱动微服务。该框架提供了一个灵活的编程模型,它建立在已经建立和熟悉的Spring熟语和最佳实践上,包括对持久性的PUB/Sub语...

2020-01-14 16:28:30

Spring Cloud学习笔记【八】Bus、RabbitMQ和WebHooks实现配置中心与客户端的自动刷新功能

Spring Cloud学习笔记【八】Bus、RabbitMQ和WebHooks实现配置中心与客户端的自动刷新功能Spring Cloud Bus提供了批量刷新配置的机制,它使用轻量级的消息代理(例如RabbitMQ、Kafka等)连接分布式系统的节点,这样就可以通过Spring Cloud Bus广播配置的变化或者其他的管理指令。(1)利用消息总线触发一个客户端/bus/refr...

2020-01-13 16:03:10

Spring Cloud学习笔记【七】Config 配置中心与客户端的搭建使用与详解

Spring Cloud学习笔记【七】Config 配置中心与客户端的搭建使用与详解springcloud的版本Hoxton.SR1,springboot的版本是2.2.2.RELEASE。一、eruka服务端搭建a.依赖引入implementation 'org.springframework.cloud:spring-cloud-starter-...

2020-01-10 16:47:56

Spring Cloud学习笔记【六】Config 配置中心Service的使用与详解

Spring Cloud学习笔记【六】Config 配置中心Service的使用与详解1、产生前提配置文件是我们再熟悉不过的了,尤其是 Spring Boot 项目,除了引入相应的 maven 包之外,剩下的工作就是完善配置文件了,例如 mysql、redis 、security 相关的配置。除了项目运行的基础配置之外,还有一些配置是与我们业务有关系的,比如说七牛存储、短...

2020-01-09 15:01:14

Spring Cloud学习笔记【五】Feign简单使用和原理了解

Spring Cloud学习笔记【五】Feign简单使用和原理了解1 、什么是Feign?feigin是一种模板化,声明式的http客户端,feign可以通过注解绑定到接口上来简化Http请求访问。当然我们也可以在创建Feign对象时定制自定义解码器(xml或者json等格式解析)和错误处理。2、Open Feign vs Spring C...

2020-01-07 17:05:51

Spring Cloud学习笔记【四】Ribbon简单使用和源码了解

Spring Cloud学习笔记【四】Ribbon简单使用和源码了解一、简单了解Ribbon Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法,将Netflix的中间层服务连接在一起。Ribbon客户端组件提供一系列完善的配置项如连接超时,重试等。简单的说,就是在配置文件中列出Load Balancer(简...

2020-01-06 18:35:43

Spring Cloud学习笔记【三】Eureka集群高可用搭建

Spring Cloud学习笔记【三】Eureka集群高可用搭建一、说明准备3个Eureka Server搭建集群,相互之间进行两两注册,进行实例测试。方便理解集群 ,采用域名的映射。 修改你的hosts文件(win10的目录在C:\Windows\System32\drivers\etc )hosts文件:127.0.0.1 ...

2020-01-04 15:10:40

Spring Cloud学习笔记【二】Eureka服务注册与发现

Spring Cloud学习笔记【二】Eureka服务注册与发现一、Eureka简介 Spring Cloud Eureka 是 Spring Cloud Netflix 微服务套件的一部分,基于 Netflix Eureka 做了二次封装,主要负责完成微服务架构中的服务治理功能,服务治理可以说是微服务架构中最为核心和基础的模块,...

2020-01-03 09:27:55

Spring Cloud学习笔记【一】全家桶主要组件及简要介绍

Spring Cloud学习笔记【一】全家桶主要组件及简要介绍SpringCloud,进入官网地址,官网简单描述其全貌。基于SpringBoot构建的SpringCloud是微服务架构的集大成者,将一系列优秀的组件进行了整合。简单的一张图,进行组件的描述,如下:1、Spring Cloud EurekaEureka负责...

2020-01-02 15:59:52

Mysql求两个表(查询结果)的差集

Mysql求两个表(查询结果)的差集两个查询结果的差集,mysql直接提供了关键字not in,而且我们也一般先会想到这个查询方式。但是在数据量多的情况之下,效率会很低,这是必须使用左链接的方式求查询。场景是这样的小号信息可以在多个分组里面,现在需要查询出小号信息在未分组的信息并且进行分页查询!CREATE TABLE `tm_...

2019-12-27 17:10:04

nginx强制下载txt等文件

nginx强制下载txt等文件当前的浏览器能够识别文件格式,如果浏览器本身能够解析就会默认打开,如果不能解析就会下载该文件。比如txt文件就直接被解析,还有其他文件也是一样。那么使用nginx做资源服务器的时候,如何强制下载文件呢?当前的nginx文件路径配置如下:添加头信息C...

2019-12-23 16:47:27

查看更多

勋章 我的勋章
  • Github
    Github
    绑定GitHub第三方账户获取
  • 签到达人
    签到达人
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 技术圈认证
    技术圈认证
    用户完成年度认证,即可获得
  • 新人勋章
    新人勋章
    用户发布第一条blink获赞超过3个即可获得
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。