STL과 Thread
글쓴이: asleea / 작성시간: 월, 2013/08/26 - 6:02오후
STL이 Thread에 안전하지 않다고 하는 것은 여기저기서 주워들어 알고 있는데,
그 뜻이 만약
std::vector<int> vec;
라는 자원을 만들었다면 vec라는 자원에 접근이 안전하지 않다는 뜻인가요
아니면 같은 자원이 아니더라도 thread1 에서 vec1을 선언하고 thread2에서 vec2를 선언해서 따로 사용 하더라도 vector라는 STL을 사용 하는것 자체가 안전하지 않다는 뜻인가요?(vector 내부적으로 static member 변수가 존재 한다던가 해서)
위의 내용은 전자의 내용이 맞을 듯하긴한데 혹시나 해서, 그럼 컨테이너가 아닌 STL 알고리즘 관련 함수들은 그냥 여러 쓰레드에서 함수 사용자체가 안전하지 않다는 뜻이 겠죠?
Forums:
gilgil.net
1. 같은 자원을 다른 스레드에서 access할 때 문제가 생기죠.
2. 다른 스레드에서 각자 STL 객체를 생성하여 각자 지지고 볶는 건 상관없습니다.
ps : static member 객체를 서로 다른 스레드에서 접근하는 것은 1번과 마찬가지입니다(같은 자원임).
www.gilgil.net
다시 이야기 하자면,STL객체(모든?)는 적어도
다시 이야기 하자면,
STL객체(모든?)는 적어도 읽기/쓰기용의 스태틱 멤버를 가지고 있지않다.
(만일 스태틱 멤버가 있더라도, 읽기전용이다)
로 받아 들일 수 있겠습니까?
그리고. 추가로...
모든 STL 관련 정보를 찾아보세요.
- 책.
- 카페. 블로그.
- 소스. 예제.
그리고. 테스트해보세요.
지금 생각해보니까. 저는 STLPort 5.1을 사용한적이 있었는데요.
DLL을 사용하는 경우는. 실행이 잘됐었습니다.
그렇지 않은 경우는 에러가 나서 안되는 문제가 있었습니다.
예제소스를 만들어 봤습니다.
가장 중요한건. 겹쳐지지 않고 동작하는겁니다.
그리고. 각 함수를 제대로 이해하는것이 중요한데... 매우 많은 시간이 필요할거 같습니다.
----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.
매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.
각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com
댓글 달기