나는 다중 스레드로 만들려고하는 응용 프로그램을 가지고 있습니다. 각 스레드는 읽기 전용 데이터의 큰 덩어리에 액세스합니다.여러 스레드에서 동시에 읽기 전용 데이터에 액세스하는 것이 좋습니까?
여러 스레드가 동시에 데이터에 액세스하는 것은 괜찮습니까? 데이터가 읽기 전용이 아니면 경쟁 조건을 방지하기 위해 뮤텍스 또는 다른 형식의 동기화를 사용해야 할 것입니다. 하지만 괜찮 으면 동기화에 관계없이 데이터를 읽어 궁금하네요.
모든 스레드 동안 데이터가 수정되지 않습니다. 응용 프로그램은 Linux와 Windows에서 실행되며 차이가 나는 경우 C++로 작성됩니다.
일반적인 답변이 이미 제시되어 있지만 경고를 추가하고 싶습니다. 자원이 데이터베이스 인 경우주의하십시오. 여기를 참조하십시오 : http://stackoverflow.com/questions/13912489/read-only-access-only-for-sqlite3-from-multiple-threads – Fabian
아마도 중요한 문제는 성능이 읽기 전용 스레드에도 영향을 미치는지 여부입니다 안전한. 100 개의 스레드가 여러 개의 임의 색인에서 10000 개의 요소로 이루어진 벡터로부터 읽는다고 가정 해보십시오. –