【发布时间】:2011-03-09 19:56:28
【问题描述】:
我的问题是,我有多个线程更新的块矩阵。 多个线程可能一次更新不相交的块,但通常可能存在竞争条件。现在矩阵是使用单锁锁定的。
问题是,有没有可能(如果有,怎么做?) 实现一个高效的锁数组,这样一次只能锁定矩阵的一部分。
有问题的矩阵可以变得相当大,大约 50^2 个块。我最初的猜测是使用动态分配的互斥体向量/映射。
这是好方法吗? 使用多个条件变量会更好吗? 有更好的方法吗?
【问题讨论】:
-
您是否总是在程序中处理同一个矩阵?还是矩阵序列(如视频处理)?
标签: c++ performance boost multithreading