C++에서 잠금이나 뮤텍스/세마포어를 사용하지 않고 경쟁 조건을 방지하려면 어떻게합니까? 나는 배열에 값을 설정한다있는 루프 중첩을 처리 해요 :C++에서 잠금을 사용하지 않고 경쟁 조건을 방지하려면 어떻게합니까?
for (int i = 0; i < m; ++i)
for (int j = 0; j < n; ++j)
for (int k = 0; k < o; ++k)
array[k] += foo(...);
, 내가 동시에 실행중인 다른 스레드를 보장 할 수 있도록이 처리 할 더 많은 이하 동시에 배열 [k]에 쓰지 마십시오. 이것에 접근하는 방법에 대한 제안?
편집 : Linux 컴퓨터에서 실행 중이며 Intel 컴파일러도 사용해야합니다. "gcc"대신 "icc"를 사용하여 코드를 컴파일합니다.
OS는 무엇입니까? 또는 부스트 라이브러리를 사용합니까? – Naveen
이것은 모두 Linux에 있습니다. – Hristo
나는 약간 혼란 스럽다. 제목에 자물쇠가없는 해결책을 묻고 자물쇠를 던지는 질문에? – Burkhard