- 博客(14)
- 问答 (4)
- 收藏
- 关注
原创 Java多线程框架Executor
Executor是java5之后提供的一个多线程框架java.util.concurrent,通过Executor提供的线程池来创建线程,他基于生产者-消费者模式,其提交任务的线程相当于生产者,执行任务的线程相当于消费者,并用Runnable来表示任务。Executor提供了4中创建线程池的方法:1、newSingleThreadExecutor():创建一个单线程化的线程池,它只会用唯一的工...
2018-11-19 19:00:44
271
原创 四、Java多线程并发同步之Exchanger
概述Exchanger:交换器,用于线程间交换数据,他提供一个同步点,在这个同步点,两个线程可以交换数据Exchanger通过exchange方法进行交换,如果线程A先执行exchange方法,他会一直等待线程B也执行exchange方法,当两个线程都到达同步点时,就会交互数据。业务场景有一个典型的例子,就是一手交钱,一手交货,假如A是绑匪,绑架了B的女儿,需要B交出一千万来换,双方约定在...
2018-11-19 18:58:12
241
原创 三、Java多线程并发同步之CountDownLatch
概述CountDownLatch:计数器,允许一个或多个线程一直等待,直到其他线程执行完后再执行。计数器的初始值为线程的数量 ,每当一个线程完成了自己的任务后,计数器的值就会减1。当计数器值到达0时,它表示所有的线程已经完成了任务 。业务场景例如用户模拟多个用户并发访问某个API,测试API的性能;如有一个任务,需要等其他5个任务执行完成后,才能执行。实现CountDownLatch(i...
2018-11-19 18:56:52
325
原创 二、Java多线程并发同步之CyclicBarrier
概述CyclicBarrier:可循环屏障,允许一组线程全部等待的同步辅助工具。一组线程互相等待,直到所有线程都到达某个公共屏障点(也可以叫同步点) 。它可以在等待线程之后重新使用。这个屏障之所以用循环修饰,是因为在所有的线程释放彼此之后,这个屏障是可以重新使用的 。CyclicBarrier支持一个可选的Runnable命令,在一组线程中的最后一个线程到达屏障点之后(但在释放所有线程之前),...
2018-11-19 18:55:53
254
原创 一、Java多线程并发同步之Semaphore
一、多线程并发同步之Semaphore概念Semaphore是一种在多线程环境下使用的设施,该设施负责协调各个线程,用来管理资源,以保证它们能够正确、合理的使用公共资源的设施,也是操作系统中用于控制进程同步互斥的量。用我们常见的说法就是用来控制并发数。信号量是一个非负整数 。业务场景以售票窗口买票为例,假设火车站有两个售票窗口,一开始两个窗口都是没有人的,这是同时来了10个人买票,每次只...
2018-11-13 19:16:53
364
原创 八、SpringCloud之Config分布式配置中心
SpringCloud Config为微服务架构的微服务提供统一集中的外部配置支持,便于统一管理服务配置。SpringCloud Config分为服务端和客户端两部分。服务端也就是分布式配置中心,用于连接配置服务器获取配置信息。客户端是通过配置中心在启动时获取对应业务相关的配置信息。 中文文档:https://springcloud.cc/spring-cloud-config...
2018-08-24 23:06:51
199
原创 七、SpringCloud之路由网关Zuul
Zuul的主要功能是对请求的路由转发和过滤,路由功能将外部请求转发到具体的微服务实例,过滤功能负载对请求进行校验、服务聚合等操作,Zuul与Eureka整合,将自身注册到服务中心,通过Eureka统一管理从Eureka中获取相应的微服务。官方文档:http://projects.spring.io/spring-cloud/spring-cloud.html#_router_and_fil...
2018-08-22 23:07:21
173
原创 六、SpringCloud之Hystrix断路器
1、Hystrix介绍雪崩:微服务架构中服务与服务之间会相互调用,相互依赖,如果由于网络或其他原因导致某个微服务的调用响应时间过长或不可用,大量请求进来可能就会导致系统资源占用过多,从而引起系统崩溃,也就是所谓的“雪崩效应”。Hystrix是一个用于处理分布式系统的延迟和容错的 框架,当系统中某个服务发生故障或当调用一个特定的服务达到一定阈值(默认5秒失败20次) 后,通过断路器的故障监...
2018-08-21 23:20:46
762
原创 五、SpringCloud之Feign负载均衡
Feign是一个声明式Web服务客户端,能让编写web客户端更加简单,创建一个接口并在上面添加注解去使用Feign,它支持Feign注解和JAX-RS注解。Feign也支持可插拔式的编码器和解码器,Feign 默认整合了Eureka和Ribbon实现客户端负载均衡。Feign核心是使得编写Java Http客户端变得更容易,使用接口和注解(类似Mybatis中Dao和@Mapper)来完成对服...
2018-08-15 14:51:14
5214
原创 四、SpringCloud之Ribbon负载均衡
Ribbon是一个客户端的负载均衡(Load Balance)工具,通过基于多种负载均衡算法达到系统的高可用(HA)官方资料:https://github.com/Netflix/ribbonhttps://github.com/Netflix/ribbon/wiki/Getting-Started以下内容是基于上一节的工程,使用Ribbon+RestTemplate 实现服务间通...
2018-08-15 10:45:08
245
原创 三、SpringCloud之服务注册与发现组件--Eureka
1、Euraka介绍Euraka是Netflix开发的一个服务注册与发现的子模块,是基于REST的服务框架,遵循AP原则Eureka包含两个组件:Eureka Server和Eureka ClientEureka Server提供服务注册服务,各个节点启动后,会在Eureka Server中进行注册 。Eureka github 地址: https://github.com/Ne...
2018-08-13 23:13:55
701
原创 二、REST风格微服务架构搭建
使用SpringBoot、SpringCloud、Mybatis创建一个简单CURD的Rest风格微服务架构。源码:https://github.com/hnyydp/microservice项目代码结构: 1、父工程建立首先建立一个父项目microservice,用来统一管理项目依赖版本,注意创建的是maven pom项目。pom.xml<properties&g...
2018-08-08 09:31:56
1442
原创 一、SpringCloud介绍
微服务:是指具体解决某个问题的一个服务应用,强调的是服务大小。微服务架构:是一种架构模式或架构风格,将单一的应用拆分中多个小应用,每个应用都运行在自己的进程中。核心是将传统的一站式应用,按照业务拆分成一个个的服务,每个微服务提供单个业务功能。能够拥有自己独立的数据库。SpringCloud:是一系列框架的有序集合 ,是基于SpringBoot提供的一套微服务的解决方案。通过Spring B...
2018-08-08 09:25:16
479
原创 SpringBoot整合Freemarker模板引擎
1、引入Maven依赖&lt;dependency&gt; &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt; &lt;artifactId&gt;spring-boot-starter-freemarker&lt;/artifactId&gt;&lt;
2018-07-19 10:53:16
930
空空如也
Android在WIFI不稳定时中断Socket连接
2021-06-26
c#获取rar和zip压缩包里面内容
2015-06-24
c# winform实现 ftp 下载显示信息问题
2015-06-05
C# winform 实现ftp下载时界面卡死
2015-06-04
TA创建的收藏夹 TA关注的收藏夹
TA关注的人