x*******i 发帖数: 273 | 1 问题是这样的:client端接受server端的数据,数据被解析后有的用于audio, 有的用
于graphics rendering, 有的是用户数据。同时client也会向server发送用户数据。用
户数据的优先级高于audio, audio高于graphics rendering. audio和graphics
rendering的状态受用户数据的影响,所以他们要共享一些 buffer。
这种情况下我需要多线程,起码graphics rendering和用户数据的处理分开,但是因为
他们需要访问同样的buffer, 所以这些buffer的访问要lock. 但是我发现这样
performance下降很多,大家有什么好主意吗? | c*****t 发帖数: 1879 | 2 一般这种东西都是好几个 buffer 。见 cyclic lock free buffer,MVCC 等。
这些利用的就是 32-bit int/pointer 在 32-bit 机器上是 atomic 的。
你最好看下书。这东西挺简单,但是得有概念。
【在 x*******i 的大作中提到】 : 问题是这样的:client端接受server端的数据,数据被解析后有的用于audio, 有的用 : 于graphics rendering, 有的是用户数据。同时client也会向server发送用户数据。用 : 户数据的优先级高于audio, audio高于graphics rendering. audio和graphics : rendering的状态受用户数据的影响,所以他们要共享一些 buffer。 : 这种情况下我需要多线程,起码graphics rendering和用户数据的处理分开,但是因为 : 他们需要访问同样的buffer, 所以这些buffer的访问要lock. 但是我发现这样 : performance下降很多,大家有什么好主意吗?
|
|