avatar
x*i
2
问题是这样的:client端接受server端的数据,数据被解析后有的用于audio, 有的用
于graphics rendering, 有的是用户数据。同时client也会向server发送用户数据。用
户数据的优先级高于audio, audio高于graphics rendering. audio和graphics
rendering的状态受用户数据的影响,所以他们要共享一些 buffer。
这种情况下我需要多线程,起码graphics rendering和用户数据的处理分开,但是因为
他们需要访问同样的buffer, 所以这些buffer的访问要lock. 但是我发现这样
performance下降很多,大家有什么好主意吗?
avatar
c*t
3
一般这种东西都是好几个 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下降很多,大家有什么好主意吗?

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。