0
我有一個非常大的數組可以被多個線程讀/寫。每個線程一次只能讀取它們中的一個元素,所以鎖定整個數組是一個壞主意。我所期待是一樣的東西如何使用TBB/OpenMP鎖定陣列的元素
// before threads
lock_t Lock[NUM_THREADS];
...
// during threads
get_lock(Lock[thread_id], element_id);
array[element_id]+=10; // some operations
release_lock(Lock[thread_id]);
所以我的問題是,什麼是設計get_lock
和release_lock
的最佳策略是什麼?
很好。我只是把我的思想固定在其他愚蠢的東西上。 – xis