作者归档
小规模的流处理框架.Part 2: RxJava 1.x/2.x
原文链接 作者:Tomasz Nurkiewicz 译者:simonwang
在part 1: thread pools中,我们设计并实现了一个相对简单的实时处理events的系统。在阅读本文之前你应该确保已经读懂了Part1的那篇文章,这里重新阐述一遍系统的设计要求:
阅读全文
小规模的流处理框架.Part 1: thread pools
原文链接 作者:Tomasz Nurkiewicz 译者:simonwang
(译者:强力推荐这篇文章,作者设计了一个用于小流量的流式数据处理框架,并详细给出了每一个需要注意的设计细节,对比了不同设计方案的优缺点,能够让你对流处理过程,某些设计模式和设计原则以及指标度量工具有一个更深刻的认识!)
在GeeCON 2016上我为我的公司准备了一个编程竞赛,这次的任务是设计并实现一个能够满足以下要求的系统:
阅读全文
CompletableFuture 不能被中断
原文链接 作者:Tomasz Nurkiewicz 译者:simonwang
我之前写过一篇关于InterruptedException and interrupting threads的文章。总之,如果你调用Future.cancel(),那么Future不仅会终止正在等待的get(),还会试图去中断底层的线程。这是个很重要的特征,它能够使线程池变得更加利于使用。我在之前的文章中也说过,相对于标准的Future,尽量使用CompletableFuture。但事实证明,Future的更加强大的兄弟-CompletableFuture并不能优雅地处理cancel()。
Java中的Functor与monad
原文链接 作者:Tomasz Nurkiewicz 译者:simonwang
这篇文章最初是我们的Reactive Programming with RxJava一书中的附录,然而提到monad即使它与响应式编程有关,但也只是一点点,所以我决定把它单独拿出来出一篇博客。我意识到对monad一边解释一边纠正,对我而言这就像是在编程博客上使用“Hello World”一样(是对是错拉出来溜溜)。而且这篇文章从Java数据结构与库的角度对functor与monad给出了独特见解,因此我认为这值得拿出来分享。
InterruptedException 和 interrupting threads 的一些说明
原文链接 作者:Tomasz Nurkiewicz 译者:simonwang
如果InterruptedException没有检测到异常,可能没人会注意到它,这会导致很多bug不被发现。而检测到这个异常的人大多数都是草率地、不恰当地处理着它。
哪个线程执行 CompletableFuture’s tasks 和 callbacks?
原文链接 作者:Tomasz Nurkiewicz 译者:simonwang
CompletableFuture尽管在2014年的三月随着Java8被提出来,但它现在仍然是一种相对较新潮的概念。但也许这个类不为人所熟知是好事,因为它很容易被滥用,特别是涉及到使用线程和线程池的时候。而这篇文章的目的就是要描述线程是怎样使用CompletableFuture的。
ExecutorService-10个要诀和技巧
原文链接 作者:Tomasz Nurkiewicz 译者:simonwang
ExecutorService抽象概念自Java5就已经提出来了,现在是2014年。顺便提醒一下:Java5和Java6都已不被支持,Java7在半年内也将会这样。我提出这个的原因是许多Java程序员仍然不能完全明白ExecutorService到底是怎样工作的。还有很多地方要去学习,今天我会分享一些很少人知道的特性和实践。然而这篇文章仍然是面向中等程序员的,没什么特别高级的地方。