Archive for the ‘ 并发译文 ’ Category

[译]深入 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代码到字节码——第一部分



非阻塞算法

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

在并发上下文中,非阻塞算法是一种允许线程在阻塞其他线程的情况下访问共享状态的算法。在绝大多数项目中,在算法中如果一个线程的挂起没有导致其它的线程挂起,我们就说这个算法是非阻塞的。

为了更好的理解阻塞算法和非阻塞算法之间的区别,我会先讲解阻塞算法然后再讲解非阻塞算法。

Read more

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: 非阻塞算法



Java并发编程之CAS

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

CAS(Compare and swap)比较和替换是设计并发算法时用到的一种技术。简单来说,比较和替换是使用一个期望值和一个变量的当前值进行比较,如果当前变量的值与我们期望的值相等,就使用一个新值替换当前变量的值。这听起来可能有一点复杂但是实际上你理解之后发现很简单,接下来,让我们跟深入的了解一下这项技术。

Read more

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



线程基础之遗漏和扩展部分

原文地址  译文地址   译者:姚志彬  校对:丁一,方腾飞

       这里我们只是关注了一些多线程之间共享变量的简单使用问题。这些是任何一个写多线程程序的人,都应该熟悉的最基础的问题。我们忽略了一些其他多线程实现提供的工具。它们虽然很少被用到,但是对于你的程序仍然很有必要。

Read more

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: 线程基础之遗漏和扩展部分



Netty源码注释翻译-Channel类

定义为一个通往网络socket或者一个由I/O读写能力的组件。

通道提供:
1,通道的当前状态,打开?已连接?
2,跟通道关联的配置信息ChannelConfig,包括buffer大小等。
3,通道支持的I/O操作,如读、写、连接、绑定等。
4,跟通道关联的ChannelPipeline,用来处理通道的I/O事件和请求。

Read more

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: Netty源码注释翻译-Channel类



一个高可扩展的基于非阻塞IO的服务器架构

原文链接   译者:mailto:ahahage@163.com

  • 目录
  • 线程体系结构
  • 反应堆模式
  • 组件架构
  • 接收器
  • 分配器
  • 分配器级别事件处理器
  • 应用程序级别事件处理器
  • 总结
  • 参考资料

Read more

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: 一个高可扩展的基于非阻塞IO的服务器架构



JAVA语言规范:线程和锁

原文链接  译者:山鸡 校对:方腾飞

(本文是Oracle 官方《Java语言规范》第十七章译文,有兴趣翻译Java语言规范的同学可以在联系我们。)

JAVA语言规范:线程和锁

概述:

前面章节的大多数讨论,都是关于通过单线程一次执行单个语句或者表达式。而JAVA虚拟机可以支持多线程同时执行。这些线程可以独立执行代码操作,而操作后所产生的值会保留在共享内存当中。单处理器和多处理器都能支持多线程,它们都是通过分配CPU时间片来执行代码。

Read more

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: JAVA语言规范:线程和锁



Java IO: System.in, System.out, System.err

原文链接 作者: Jakob Jenkov 译者: 李璟(jlee381344197@gmail.com)

System.in, System.out, System.err这3个流同样是常见的数据来源和数据流目的地。使用最多的可能是在控制台程序里利用System.out将输出打印到控制台上。

JVM启动的时候通过Java运行时初始化这3个流,所以你不需要初始化它们(尽管你可以在运行时替换掉它们)。

Read more

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: Java IO: System.in, System.out, System.err



Akka笔记之日志及测试

英文原文链接译文链接,原文作者:Arun Manivannan ,译者:有孚

在前两篇笔记中(第一篇第二篇),我们简单地介绍了一下Actor以及它的消息传递是如何工作的。在本篇中,我们将看下如何解决TeacherActor的日志打印及测试的问题。

Read more

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: Akka笔记之日志及测试



return top