use std::memory_order_consume when retrieving an
index into that array from another thread, you can use std::kill_dependency() to let
the compiler know that it doesn’t need to reread the contents of the array entry"
int global_data[]={ ... };
std::atomic<int> index;
void f()
{
int i=index.load(std::memory_order_consume);
do_something_with(global_data[std::kill_dependency(i)]);
}
В плане перечитывать значения массива? Немного не пониманию при чём тут это. Ведь i уже локальная переменная потока. Какое перечитывание?
Янапример НХНП
Это consume
Обсуждают сегодня