STL List에 값이 들어가 있는데 size가 0이 나오는 현상.

yann8166의 이미지

STL list 를 사용 하여 프로그램을 구현 하였습니다.

매초 list에 수백~ 수천개의 데이터를 push/pop 하는 작업을 진행 하는 작업과

매초 list의 size를 읽고 list데이터를 확인하는 작업을 동시 진행 하는 프로그램인데요.

push/pop 작업 쓰레드와

list size 확인 및 list data 조회를 하는 쓰레드가 별개로 돌고 있습니다.

이럴때, push/pop 작업이 뜸할때는 괜찮은데, 작업이 수백 수천개로 많아지기 시작하면

간혹 list의 size가 엉뚱한 값이 나올때가 있습니다.

실제 size는 거의 4000~5000개가 유지 되는데 어느순간 size가 0으로 뜨곤 합니다.. 왜 이럴까요??

klara의 이미지

lock걸고 하시나요? 모든 STL 컨테이너는 thread-safe하지 않습니다.

yann8166의 이미지

그런 개념도 있네요. 감사합니다...