Java中CountDownLatch和CyclicBarrier的区别.md

1. 通常认识

CountDownLatch是减计数、CyclicBarrier是加计数

CountDownLatch没法reset被复用、CyclicBarrier可以reset被复用

2. 更多思考

首先看下JAVA DOC的说明:

CountDownLatch: A synchronization aid that allows one or more threads to wait until a set of operations being performed in other threads completes.

CyclicBarrier: A s......

ForkJoinPool解读

1. 介绍

JDK1.7在并发包里面引入了这个玩意儿。根据 Doug Lea 的论文——《A Java Fork/Join Framework》而来。主要通过分而治之(把大任务分割成若干个小任务)然后合并结果这种思想来实现的线程池。有更加好的并发性能。之所以有更好的并发性能,是因为其充分利用了所有线程的工作能力,避免空闲线程,充分发挥多核并行的处理能力。这个关键是后面的working stealing算法。

此外强烈推荐下Java7中的ForkJoin并发框架初探(中)这个系列的文章,作为我这篇文章的补充阅读吧。写的很好。

PS: 本文的介绍主要以JDK1.7版本为例

......

c10k问题与异步非阻塞

1. 什么是C10K问题

字面意思就是concurrency 10K,实际上就是说如何解决大并发问题。

2. 常见解决方案

2.1 异步非阻塞

2.1.1 I/O模型

出现C10K问题,各个操作系统都从OS层面提供了异步非阻塞的IO模型

FressBS有kqueue,Windows有IOCP,linux有epoll。

2.1.2 新IO模型的产物

在这种异步非阻塞IO模型下,也诞生了很多优秀产品:

nginx:高性能的HTTP和反向代理服务器

libevent:高性能网络库

node.js:基于 Chrome V8 引擎的 JavaScript 运行......