TTripleBuffer无锁单消费单生产,不需要引入锁同步。

‘lvzeyue’ fcc2633dc7 【fix】 添加readme 8 maanden geleden
Project1 db2ddecd53 【fix】 提交文件 8 maanden geleden
Project1.sln db2ddecd53 【fix】 提交文件 8 maanden geleden
README.md fcc2633dc7 【fix】 添加readme 8 maanden geleden

README.md

TTripleBuffer

  • TTripleBuffer无锁单消费单生产,不需要引入锁同步。

  • 线程引入主要憧憬1+1趋近于2,但多线程很难做到数据独立,因此不竞争的同步显得极其美丽。

  • TTripleBuffer借鉴于UE里,在服务器里我发现大多双缓冲数据然后悲观锁,就在想单消费和单生产是不是仅仅做好同步逻辑,互斥锁的互斥逻辑可能需求过剩。

多线程问题:

  • 指令重排:TTripleBuffer数据位和标志位是一起的,读和写互不干扰主要在交换Temp位,所以避免了这个问题,自然也不用加内存屏障。
  • 线程同步:同步标志位主要是Temp位,不存在两个同时写,只可能存在一写一读,能保证消费线程在生产之后动作。

这里应用我丢在线程输入日志那里,但是日志需求可能是多生产,所以不太恰当!