Atomic.liguo
3.2.0.2
Install-Package Atomic.liguo -Version 3.2.0.2
dotnet add package Atomic.liguo --version 3.2.0.2
<PackageReference Include="Atomic.liguo" Version="3.2.0.2" />
paket add Atomic.liguo --version 3.2.0.2
#r "nuget: Atomic.liguo, 3.2.0.2"
// Install Atomic.liguo as a Cake Addin
#addin nuget:?package=Atomic.liguo&version=3.2.0.2
// Install Atomic.liguo as a Cake Tool
#tool nuget:?package=Atomic.liguo&version=3.2.0.2
Atomic (Disruptor)
Product | Versions |
---|---|
.NET Framework | net40 net403 net45 net451 net452 net46 net461 net462 net463 net47 net471 net472 net48 |
This package has no dependencies.
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Atomic.liguo:
Package | Downloads |
---|---|
Disruptor.liguo
说明:项目Disruptor是从disruptor java 3.2.0版本移植到.net 平台 作者:李果 系统要求:.net framework 4.0 vs 2010 java 版本地址:http://lmax-exchange.github.io/disruptor/ /*1.WaitStrategy等待策略: * BlockingWaitStrategy 使用锁和条件变量等待屏障,这个策略适合性能,低延迟不重要,重要的是CPu资源(牺牲一定的性能,延迟换取CPU资源) * BusySpinWaitStrategy 一个忙碌自旋等待一个屏障策略,可以避免系统调度引起的不稳定性,当线程绑定到特定的CPU上这是最好策略,但这将牺牲cpu资源 * YieldingWaitStrategy 这个策略在CPU资源和低延迟间做好很的平衡作用,不会产生显著的高延迟 * SleepingWaitStrategy 这个策略基于Thread.Sleep 开始自旋,其内部使用Thread.Sleep(0),挂起当前线程但其他线程可用继续执行 , * 这个策略是CPU资源和性能之间是个很好的则中 ,但可能出现高峰延迟现象 * TimeoutBlockingWaitStrategy 在BlockingWaitStrategy测试功能上增加了超时时间,在超时时间内没有获取到锁,抛出异常 * PhasedBackoffWaitStrategy 阶段性等待事件处理器完成的屏障,此策略适合吞吐量和低延迟的并不重要,重要的是CPU资源,其在自旋后再应用BlockingWaitStrategy策略 *2.ringBuffer:使用策略 * MultiThreadedLowContentionClaimStrategy 多个发布者同时使用ringBuffer,需要足够的CPU核数 * SingleThreadedClaimStrategy 单个发布者,此策略不适合多个线程发布者同时使用ringBuffer,只需要1个cas操作 * MultiThreadedClaimStrategy 适合多个发布者使用ringBuffer,要求有足够的cpu处理多个发布者线程,需要执行2个cas(比较交换) * 3.AbstractSequencer 序列基类提供通用的add,remove序列的功能 * 4.MultiProducerSequencer 多生产者,适合多个线程生产者 * 5.SingleProducerSequencer 单生产者,多线程下不是安全的,因为他执行任何屏障等待 * 6.ProcessingSequenceBarrier 处理序列屏障, * 7.Sequence ringBuffer核心单元,这个是个可以并发操作的序列类,拥有跟踪ringBuffer对事件的处理进度,解决伪共享,提供一系列原子操作 * 8.SequenceGroup ,SequenceGroupManaging SequenceGroupManaging封装了对SequenceGroup的内部管理(增加序列,删除序列操作) * 9.NoOpEventProcessor 仅此用于跟踪事件处理器,在测试和发布者预填充ringBuffer场景下非常有用 * 10.WorkProcessor 实现有效的消费序列中的事件,和确保有效的屏障 * 11.RingBuffer Disruptor显示的核心类,可重复使用的包含数据的环形缓冲 * 12.BatchEventProcessor 批量事件处理 */ |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
3.2.0.2 | 1,742 | 1/8/2014 |