#concurrent

disruptor是一个高并发的框架,该项目源于LMAX。LMAX是一个高频交易系统,他们早起的设计多是基于SEDA和Actors来提高吞吐量,通过无数的性能分析,他们发现队列往往成为多级系统中最耗时的一部分,并尝试了开发更高性能的队列。但最终发现,队列作为一种主要的数据结构,主要用于解决生产者,消费者问题,以及存储数据,并不能满足他们的需求。而disruptor就是他们设计开发的一种并发结构,具有很高的吞吐量和很低的时延。

复杂的并发问题

在并发情况下,通常会有两个或者更多的任务同时执行,并且多个任务会同时访问同一个资源。资源可以是一个文件,数据库,端口,甚至内存地址。

对于并发代码,我们关心两点,一个是互斥,一个是修改的可见性。互斥负责管理资源的更新,可见性则指如何保证改动对其他线程可见。在大多数的环境中,写操作是系统中最耗时的操作,允许多个线程并发写同一个资源需要复杂和繁重的协调。通常通过锁策略来进行协调,然而不可否认的一点,加锁通常意味着增加时延。

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×