阻塞还是不阻塞?

2014年08月18日 - 阻塞还是不阻塞? - JVM 并发性 阻塞还是不阻塞? - 对比 Java 8 中处理异步事件的阻塞和非阻塞方法 阻塞还是不阻塞? - 关于本系列由于多核系统普遍存在,并发性编程的应用无疑比以往任何时候都要广泛。但并发性很难正确实现,用户需要借助新工具来使用它。很多基于 JVM 的语言都属于这类开发工具,Scala 在这一领域尤为活跃。本系列文章将介绍一些针对 Java 和 Scala 语言的较新的并发性编程方法。 阻塞还是不阻塞? -...详情

使用 Akka 构建 actor 应用程序

2015年09月15日 - 使用 Akka 构建 actor 应用程序 - JVM 并发性 使用 Akka 构建 actor 应用程序 - 从基础操作进阶到构建使用 actor 交互的应用程序 使用 Akka 构建 actor 应用程序 - “JVM 并发性:使用 Akka 执行异步操作” 介绍了 actor 模型 和 Akka 框架和运行时。构建 actor 应用程序与构建传统的线性应用程序不同。采用线性方法时,您会考虑完成目标所涉及的控制流和步骤顺序。要有效地...详情

使用 Akka 执行异步操作

2015年07月13日 - 使用 Akka 执行异步操作 - JVM 并发性 使用 Akka 执行异步操作 - 为并发应用程序构建 actor 系统 使用 Akka 执行异步操作 - 本 系列 中以前的文章介绍了如何通过以下方式实现并发性: 使用 Akka 执行异步操作 - 并行地在多个数据集上执行相同的操作(就像 Java 8 流一样) 显式地将计算构建成异步执行某些操作,然后将结果组合在一起(就像 future 一样)。 使用 Akka 执行异步...详情

Scala 中的异步事件处理

2014年10月29日 - Scala 中的异步事件处理 - 了解阻塞和非阻塞技术,包括使用 async 宏轻松编写非阻塞代码 Scala 中的异步事件处理 - 在任何并发性应用程序中,异步事件处理都至关重要。无论事件的来源是什么(不同的计算任务、I/O 操作或与外部系统的交互),您的代码都必须跟踪事件,协调为响应它们而执行的操作。应用程序可以采用两种基本方法之一来实现异步事件处理: Scala 中的异步事件处理 - 阻塞:一个等待事件的协调线程。 非阻...详情

Java 和 Scala 并发性基础

2014年05月12日 - Java 和 Scala 并发性基础 - 了解 Java 语言中的并发性和 Scala 提供的附加选项 Java 和 Scala 并发性基础 - 关于本系列由于多核系统普遍存在,并发性编程的应用无疑比以往任何时候都要广泛。但并发性很难正确实现,用户需要借助工具来为他们提供帮助。很多基于 JVM 的语言都属于这类开发工具,Scala 在此领域尤为活跃。此系列文章将介绍一些针对 Java 和 Scala 语言的较新的并发性编程方法。 Jav...详情

Java 8 并发性基础

2014年06月10日 - Java 8 并发性基础 - 了解 Java 8 功能如何让并发性编程变得更容易 Java 8 并发性基础 - 在期待已久的 Java 8 版本中,并发性方面已实现了许多改进,其中包括在 java.util.concurrent 层级中增加新的类和强大的新并行流 功能。设计流的目的是与 lambda 表达式 共同使用,Java 8 的这项增强也使得日常编程的其他很多方面变得更加简便。(参见介绍 Java 8 语言的 指南文章,了解对于 ...详情

Java 8 新特性概述

2014年10月20日 - Java 8 新特性概述 - Java 8 新特性概述 - Java 8 引入的一个核心概念是函数式接口(Functional Interfaces)。通过在接口里面添加一个抽象方法,这些方法可以直接从接口中运行。如果一个接口定义个唯一一个抽象方法,那么这个接口就成为函数式接口。同时,引入了一个新的注解:@FunctionalInterface。可以把他它放在一个接口前,表示这个接口是一个函数式接口。这个注解是非必须的,只要接口只包含一...详情

Java 8 被动迭代式特性介绍

2015年08月10日 - Java 8 被动迭代式特性介绍 - 编程语言一般都需要提供一种机制用来遍历软件对象的集合,现代的编程语言支持更为复杂的数据结构,如列表、集合、映射和数组。遍历能力是通过公共方法提供,而内部细节都隐藏在类的私有部分,所以程序员不需要了解其内部实现就能够遍历这些数据结构中的元素,这就是迭代的目的。迭代器是对集合中的所有元素进行顺序访问并可以对每个元素执行某些操作的机制。迭代器在本质上提供了在封装的对象集合上做“循环”的装置。 Java 8...详情

传统 for 循环的函数式替代方案

2017年07月12日 - 传统 for 循环的函数式替代方案 - 3 个消除复杂迭代中的麻烦的新方法 传统 for 循环的函数式替代方案 - 尽管 for 循环包含许多可变部分,但许多开发人员仍非常熟悉它,并会不假思索地使用它。从 Java™ 8 开始,我们有多个强大的新方法可帮助简化复杂迭代。在本文中,您将了解如何使用 IntStream 方法 range、iterate 和 limit 来迭代范围和跳过范围中的值。您还将了解新的 takeWhile 和 dr...详情

Java 8 中的 Streams API 详解

2014年09月11日 - Java 8 中的 Streams API 详解 - Streams 的背景,以及 Java 8 中的使用详解 Java 8 中的 Streams API 详解 - Stream 作为 Java 8 的一大亮点,它与 java.io 包里的 InputStream 和 OutputStream 是完全不同的概念。它也不同于 StAX 对 XML 解析的 Stream,也不是 Amazon Kinesis 对大数据实时处理的 Stream...详情

视口的宽高与滚动高度

2016年06月24日 - 视口的宽高与滚动高度 - 很多场景下会需要在JavaScript中获取窗口或DOM元素的宽高,以及滚动高度。 例如:实现滚动效果、创建全屏布局、动态绝对定位等等。 本文就来介绍相关的DOM API:window.innerHeight, window.outerHeight,clientHeight, offsetHeight, scrollHeight, scrollTop等(当然每个属性都有对应的Width)。 视口的宽高与滚动高度...详情

Java 8 方法引用

2017年07月10日 - Java 8 方法引用 - 形如 ClassName::methodName 或者 objectName::methodName 的表达式,我们把它叫做方法引用(Method Reference)。可能你现在还理解不了,但是编译器足够聪明,或许你可以看看编译器是如何根据 “晦涩难懂” 的 Method Reference 来推断你的意图的。 Java 8 方法引用 - 方法引用有四种,分别是: Java 8 方法引用 - 指向静态...详情

架构设计:负载均衡层设计方案(9)——负载均衡层总结下篇

2015年09月02日 - 架构设计:负载均衡层设计方案(9)——负载均衡层总结下篇 - (接上一篇《架构设计:负载均衡层设计方案(8)——负载均衡层总结上篇》) 架构设计:负载均衡层设计方案(9)——负载均衡层总结下篇 - 架构设计:负载均衡层设计方案(9)——负载均衡层总结下篇 - Keepalived在我的博客文章《架构设计:负载均衡层设计方案(7)》、《架构设计:负载均衡层设计方案(6)》中都有介绍。大家可能注意到,在这些文章中从来没有单独介绍...详情

架构设计:负载均衡层设计方案(8)——负载均衡层总结上篇

2015年08月30日 - 架构设计:负载均衡层设计方案(8)——负载均衡层总结上篇 - 很明显通过前面的八篇文章的介绍,并不能覆盖负载均衡层的所有技术,但是可以作为一个引子,告诉各位读者一个学习和使用负载均衡技术的思路。虽然后面我们将转向“业务层”和“业务通信”层的介绍,但是对负载均衡层的介绍也不会停止。在后续的时间我们将穿插进行负载均衡层的新文章的发布,包括Nginx技术的再介绍、HaProxy、LVS新的使用场景等等。 架构设计:负载均衡层设计方案(8...详情

架构设计:负载均衡层设计方案(7)——LVS + Keepalived + Nginx安装及配置

2015年08月30日 - 架构设计:负载均衡层设计方案(7)——LVS + Keepalived + Nginx安装及配置 - 架构设计:负载均衡层设计方案(7)——LVS + Keepalived + Nginx安装及配置 - 上篇文章《架构设计:负载均衡层设计方案(6)——Nginx + Keepalived构建高可用的负载层》我们讲解了Nginx的故障切换,并且承诺各位读者会尽快讲解 LVS + Keepalived + Nginx的安装和配置。在...详情

架构设计:负载均衡层设计方案(6)——Nginx + Keepalived构建高可用的负载层

2015年08月01日 - 架构设计:负载均衡层设计方案(6)——Nginx + Keepalived构建高可用的负载层 - 前两遍文章中,我们一直在说后文要介绍Nginx + Keepalived的搭建方式。这篇文章开始,我们就来兑现前文的承诺,后续的两篇文章我们将介绍Nginx + Keepalived和 LVS + Keepalived搭建高可用的负载层系统。如果你还不了解Nginx和LVS的相关知识,请参见我之前的两篇文章《架构设计:负载均衡层设计方案(...详情

架构设计:负载均衡层设计方案(5)——LVS单节点安装

2015年08月22日 - 架构设计:负载均衡层设计方案(5)——LVS单节点安装 - 上篇文章《架构设计:负载均衡层设计方案(4)——LVS原理》,我们介绍了LVS的工作模式,和每一种模式的具体工作过程。这篇文章中,我们将介绍单一LVS节点的安装方式。比起上一篇文章,这一片要提到的安装和配置就是非常简单的了,只要您了解原理,实践就是从容的事情。 架构设计:负载均衡层设计方案(5)——LVS单节点安装 - 您可以在您的电脑上使用VMware虚拟机,按照下面...详情

架构设计:负载均衡层设计方案(4)——LVS原理

2015年12月19日 - 架构设计:负载均衡层设计方案(4)——LVS原理 - 之前我们花了两篇文章的篇幅,详细讲解了Nginx的原理、安装和特性组件。请参看《负载均衡层设计方案(2)——Nginx安装》和《架构设计:负载均衡层设计方案(3)——Nginx进阶》两篇文章。虽然不包括Nginx的所有知识(也不可能全部包括),但是足够读者将Nginx应用到实际的生产中,并进行重要特性的优化,后面有时间我们还会重新回到Nginx的讲解上。从本篇文章开始,我们将开始...详情

架构设计:负载均衡层设计方案(3)——Nginx进阶

2015年07月10日 - 架构设计:负载均衡层设计方案(3)——Nginx进阶 - 上篇文章《架构设计:负载均衡层设计方案(2)——Nginx安装》(http://blog.csdn.net/yinwenjie/article/details/46620711),我们介绍了Nginx的核心设计思想、基本安装和使用。本来准备继续介绍Nginx的几个使用特性,但是奈何博文篇幅太长,只有将一篇文章拆成两篇。本文我们将承接上文,继续讲解Nginx的实用特性,包括gz...详情

架构设计:负载均衡层设计方案(2)——Nginx安装

2015年07月10日 - 架构设计:负载均衡层设计方案(2)——Nginx安装 - 前一篇文章《架构设计:负载均衡层设计方案(1)——负载场景和解决方式》中我们描述了要搭设负载均衡层的业务场景和负载均衡层搭建和扩展思路。从这篇文章开始的后几篇文章,我们将详细介绍Nginx、LVS和Nginx+Keepalived、LVS+Keepalived和LVS+Nginx+Keepalived的安装细节,以及它们的性能优化方式。 架构设计:负载均衡层设计方案(2)—...详情

<1...23456...12>到第页