Archive for the ‘ 并发译文 ’ Category

哪个线程执行 CompletableFuture’s tasks 和 callbacks?

原文链接  作者:Tomasz Nurkiewicz   译者:simonwang

CompletableFuture尽管在2014年的三月随着Java8被提出来,但它现在仍然是一种相对较新潮的概念。但也许这个类不为人所熟知是好事,因为它很容易被滥用,特别是涉及到使用线程和线程池的时候。而这篇文章的目的就是要描述线程是怎样使用CompletableFuture的。

Read more

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: 哪个线程执行 CompletableFuture’s tasks 和 callbacks?

ExecutorService-10个要诀和技巧

原文链接 作者:Tomasz Nurkiewicz    译者:simonwang

ExecutorService抽象概念自Java5就已经提出来了,现在是2014年。顺便提醒一下:Java5和Java6都已不被支持,Java7在半年内也将会这样。我提出这个的原因是许多Java程序员仍然不能完全明白ExecutorService到底是怎样工作的。还有很多地方要去学习,今天我会分享一些很少人知道的特性和实践。然而这篇文章仍然是面向中等程序员的,没什么特别高级的地方。

Read more

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: ExecutorService-10个要诀和技巧

SLF4J 扩展

原文链接: SLF4J extensions   译者:D瓜哥

SLF4J 扩展被打包在 slf4j-ext.jar里,它随着 SLF4J 一起发布。

主要内容包含如下几部分:

Read more

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: SLF4J 扩展

Apache Velocity开发者指南–导读

原文链接   译者:小村长

Velocity–导读

本项目是 Apache Velocity官方文档的中文翻译版,Velocity类似与Jsp,是一种基于Java的模板引擎。它可以在web页面中引用java代码定义的数据和对象,而Velocity的作用就是Web视图和java代码进行组装在一起。本次翻译主要针对对Velocity感兴趣和工作中使用到Velocity的开发人员提供有价值的中文资料,希望能够对大家的工作和学习有所帮助。

由于我也是第一次接触Velocity,还不是很深入,翻译的时候也查看了一些博客以及其他网上资料。以及也测试者去了解它和Jsp方面的差别以及优缺点,同时也去了解了下他和其他Java引擎模板的区别,比如freemaker的区别,等等。但是还是因为能力见识有限,翻译过程中难免出现个人的主观或者客观原因导致与官方文档有差异。在此,我还是建议有能力的童鞋能够自己去Velocity官方看看。

Read more

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: Apache Velocity开发者指南–导读

《Redis官方文档》用Redis构建分布式锁

原文链接  译者:yy-leo   校对:方腾飞(红体标记重点)

用Redis构建分布式锁

在不同进程需要互斥地访问共享资源时,分布式锁是一种非常有用的技术手段。 有很多三方库和文章描述如何用Redis实现一个分布式锁管理器,但是这些库实现的方式差别很大,而且很多简单的实现其实只需采用稍微增加一点复杂的设计就可以获得更好的可靠性。 这篇文章的目的就是尝试提出一种官方权威的用Redis实现分布式锁管理器的算法,我们把这个算法称为RedLock,我们相信这个算法会比一般的普通方法更加安全可靠。我们也希望社区能一起分析这个算法,提供一些反馈,然后我们以此为基础,来设计出更加复杂可靠的算法,或者更好的新算法。

Read more

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: 《Redis官方文档》用Redis构建分布式锁

运行时和编译时元编程—编译时元编程

原文链接    译文链接     译者:JackWang

运行时和编译时元编程 第二部分

2 编译时元编程

Groovy的编译时元编程支持编译时生成代码。这些变换(译者注:原文该专有名词是transformations,译者直译为变换,也许不准确。如果有知道准确翻译的读者恳请不吝赐教,待译者修正)叫做程序的抽象语法树(AST),在Groovy里,我们叫做AST变换。AST变换支持在编译过程中植入钩子,修改抽象语法树之后继续编译生成正常的字节码流。和运行时元编程相比,这种转换可以在类文件的修改可见(或者说是字节码流)。如果你想要你的转换成为类协议的一部分(类协议是指实现接口,继承抽象类等等…)甚至你需要你的类可以被Java(或其他JVM语言)调用,在字节码流的修改可见是非常重要的。比如说,一个AST转换可以添加方法到一个类。在运行时元编程里,你需要使你的新方法在Groovy里可见,在编译时元编程要实现同样的功能,这个方法仅仅需要对Java可见即可。最后也同样重要的是,编译时元编程相比运行时元编程能活的更好的性能(因为没有初始化阶段)。
Read more

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: 运行时和编译时元编程—编译时元编程

Adopt Open JDK官方文档(五) Docker镜像

译者:渊策

5.1 复制镜像

镜像可以从别的设备复制并导入本地的Docker仓库。

Read more

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: Adopt Open JDK官方文档(五) Docker镜像

Adopt Open JDK官方文档(三)对Adopt OpenJDK的初步了解

译文地址 译者:郑玉婷

3. 对Adopt OpenJDK的初步了解


Read more

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: Adopt Open JDK官方文档(三)对Adopt OpenJDK的初步了解

[译]深入 NGINX: 为性能和扩展所做之设计

原文链接:Inside NGINX: How We Designed for Performance & Scale 翻译:丁一

NGINX在web性能上的表现尤为出众,这完全得益于其设计方式,许多web和应用服务器都是基于线程或进程这种简单的架构,NGINX用了一种精妙的事件驱动架构,在现代的硬件上,它可以处理成千上万的并发连接。

Inside NGINX中的信息图对高级别的进程架构和NGINX如何在单个进程中处理多个连接进行了深入探讨。本文更进一步地阐述了NGINX的所有工作原理。

Read more

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: [译]深入 NGINX: 为性能和扩展所做之设计

Java内存模型

原文地址  作者:Jakob Jenkov 译者:张坤

Java内存模型规范了Java虚拟机与计算机内存是如何协同工作的。Java虚拟机是一个完整的计算机的一个模型,因此这个模型自然也包含一个内存模型——又称为Java内存模型。 Read more

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: Java内存模型

Guava官方文档-RateLimiter类

原文链接 作者:Dimitris Andreou  译者:魏嘉鹏 校对:方腾飞token_bucket

RateLimiter 从概念上来讲,速率限制器会在可配置的速率下分配许可证。如果必要的话,每个acquire() 会阻塞当前线程直到许可证可用后获取该许可证。一旦获取到许可证,不需要再释放许可证。

校对注:RateLimiter使用的是一种叫令牌桶的流控算法,RateLimiter会按照一定的频率往桶里扔令牌,线程拿到令牌才能执行,比如你希望自己的应用程序QPS不要超过1000,那么RateLimiter设置1000的速率后,就会每秒往桶里扔1000个令牌。

com.google.common.util.concurrent.RateLimiter

@ThreadSafe
@Betapublic
abstract class RateLimiter extends Object

Read more

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: Guava官方文档-RateLimiter类

Java8并发教程:Threads和Executors

原文地址  原文作者:Benjamin Winterberg 译者:张坤

欢迎阅读我的Java8并发教程的第一部分。这份指南将会以简单易懂的代码示例来教给你如何在Java8中进行并发编程。这是一系列教程中的第一部分。在接下来的15分钟,你将会学会如何通过线程,任务(tasks)和 exector services来并行执行代码。

  • 第一部分:Threads和Executors
  • 第二部分:同步和锁

并发在Java5中首次被引入并在后续的版本中不断得到增强。在这篇文章中介绍的大部分概念同样适用于以前的Java版本。不过我的代码示例聚焦于Java8,大量使用lambda表达式和其他新特性。如果你对lambda表达式不属性,我推荐你首先阅读我的Java 8 教程

Read more

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: Java8并发教程:Threads和Executors

并发编程模型

原文链接 作者: Jakob Jenkov 译者: 林威建 [weakielin@gmail.com]

并发系统可以采用多种并发编程模型来实现。并发模型指定了系统中的线程如何通过协作来完成分配给它们的作业。不同的并发模型采用不同的方式拆分作业,同时线程间的协作和交互方式也不相同。这篇并发模型教程将会较深入地介绍目前(2015年,本文撰写时间)比较流行的几种并发模型。
Read more

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: 并发编程模型

Java ThreadLocal的使用

原文链接  作者: Jakob Jenkov 译者: 林威建[weakielin@gmail.com]

Java中的ThreadLocal类允许我们创建只能被同一个线程读写的变量。因此,如果一段代码含有一个ThreadLocal变量的引用,即使两个线程同时执行这段代码,它们也无法访问到对方的ThreadLocal变量。
Read more

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: Java ThreadLocal的使用

Java代码到字节码——第一部分

原文地址 作者:James Bloom 译者:张坤

理解在Java虚拟机中Java代码如何别被编译成字节码并执行是非常重要的,因为这可以帮助你理解你的程序在运行时发生了什么。这种理解不仅能确保你对语言特性有逻辑上的认识而且做具体的讨论时可以理解在语言特性上的妥协和副作用。 Read more

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: Java代码到字节码——第一部分

return top