一、初看Disruptor,給人的印象就是RingBuffer是其核心,生產者向RingBuffer中寫入元素,消費者從RingBuffer中消費元素。java
二、RingBuffer究竟是什麼?數組
三、講一個小故事:扔芝麻與撿芝麻的小故事線程
如圖,當第13個,須要等待3被消費。十、十一、12替換了以前的0、一、2(被消費了)。3d
四、要找到數組中當前序號指向的元素,能夠經過mod操做。blog
sequence mod array length = array index(取模操做)語法
以上面的RingBuffer爲例(java的mod語法):12%10=2 即第二個位置。二進制
五、事實上,上圖中的RingBuffer只有10個槽徹底是個意外。若是槽的個數是2的N次方,更有利於給予二進制的計算機進行計算。im