首页
招文桃
取消

Java线程间通信

生产者与消费者 一种典型的线程间通信的例子是涉及到生产者线程与消费者线程之间的关系。生产者生产数据项被消费者消费,每个被生产出的数据项被存放在共享的变量中。 想象线程以不同的速度运行,消费者可能来不及处理掉生产者之前生产出来并放到共享变量中的数据项。还有可能就是消费者消费速度太快了,未等到生产者产生数据就去取了。 为了克服这类问题,生产者线程必须等到它被通知之前生产的数据项已经被消费掉...

水密舱壁模式

水密舱壁模式是一类容错的应用程序设计。在水密舱壁模式架构中,应用程序的个组成元素被分隔到隔舱中,这样一旦其中一个出故障,其它部分仍能够运行。这是命名来自船体当中的分隔区域(水密舱壁)。如果一艘船的水密隔舱坏了,那么只是受损部位会进水(其它部分被隔开了),这样能够防止沉船。 场景与问题 一个基于云的应用程序可能包括多个服务,每个服务可能有一个或者多个消费者。一个服务超负荷或者出故障会...

Java Streams vs. Reactive Streams

Java: imperative + object-oriented Michael Feather: ​ “In OPP we encapsulate the moving parts; in FP we eliminate the moving parts.” List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6,...

Java虚方法调用

先回顾基本概念 Overloading and Overriding 主要需要总结的是: ​ When multiple overloaded methods are present, Java looks for the closest match first. It tries to find the following: Exact match by type Matc...

Java模块化

为了准备 1Z0-816,要学习一下 Java 11 的基础部分。 模块描述符语法 ModuleDeclaration: {Annotation} [open] module Identifier {. Identifier} {{ModuleDirective}} ModuleDirective: requires {RequiresModifier} Module...

响应式Spring Boot系列教程10

原文由 Trisha Gee 在当地时间2019年12月16日发布在 INTELLIJ IDEA BLOG 在这一节,我们使用Spring Profiles让应用程序决定使用哪个客户端(使用服务端发送事件的 WebClient,或 RSocket)连接到Kotlin Spring Boot股票价格服务。 现在我们有了一个RSocket客户端,可以让我们连接到我们的RSocket服...

响应式Spring Boot系列教程9

原文由 Trisha Gee 在2019年12月13日发布在 INTELLIJ IDEA BLOG 在这一节,我们添加一个RSocket客户端,用来连接上一节创建的RSocket服务器。 现在,我们有了一个使用Spring WebClient的端到端应用程序。在上一节中,我们介绍了一个新的RSocket服务器,在这节,我们将看到如何创建一个客户端来连接它 创建一个集成测试 ...

响应式Spring Boot系列教程8

原文由 Trisha Gee 在当地时间2019年12月9日发布在 INTELLIJ IDEA BLOG 在这一节,我们将给Kotlin后端添加一个新的服务,这次是通过RSocket,一种为响应式数据流而生的协议,发送价格数据。 目前为止,我们以及成功地创建了一个端到端的应用程序,从Kotlin Spring Boot后端发送价格数据,并且将它们展示到一个JavaFX折线图上。那...

响应式Spring Boot系列教程7

原文由 Trisha Gee 在当地时间2019年12月2日发布在 INTELLIJ IDEA BLOG 在这一节,我们更新实时更新图表显示多于一种股票价格,也就意味着订阅多于一个消费者到我们的响应式价格数据流。 在上一步,我们让JavaFX折线图订阅到来自响应式Spring Boot的服务,并实时显示它们。在这一步,我们要更新图表,让它能多次订阅并在同一个图表显示多组数据。 ...

响应式Spring Boot系列教程6

原文由 Trisha Gee 在当地时间2019年11月29日发布在 INTELLIJ IDEA BLOG 在这一节,我们看一下如何连接JavaFX折线图到Kotlin Spring Boot服务以实时显示股票价格数据。 在第四步,我们创建了一个JavaFX Spring Boot应用程序显示一个空的折线图。在上一步(第五步),我们整合了WebClientStockClient去...