이거 어떤식으로 사용하시나요들 ..?
멀티스레드 환경에서 사용하나요?
멀티스레드 ㄴㄴ
멀티스레드에는 그럼 atomic 이용하나요? .. 그럼 shared_ptr은 기존에 포인터가 한 주소를 여러 곳에서 참조 할 수 있는 기능에서 delete 문제를 해결했다고 보면될까요?
공유포인터는 그냥 멍청한 프로그래머가 delete 깜빡하는거 방지하는 용도고
삭제될 때 참조 카운트 변수에 접근해서 카운트 조작으로 이걸 관리하는데 이 작업이 스레드 세이프가 아님
머냐면 서로 다른 스레드의 공유 포인터 두 개가 동시에 사라지는데 둘 다 소멸자에서 어? ㅎ 참조 카운트 2번 남았네 내가 소멸 안 시켜야지
하고 그대로 메모리 누수시켜버릴수도 있는거
멀티스레드 프로그래밍 할때는 가급적 이벤트 메시지 같은걸로 데이터 복사해가면서 넘기는게 좋음
꼭 참조를 해야겠다 그러면 mutex lock 쓰는 래퍼 하나 만들든가
아하 답변 감사합니다. 이해했습니다!
멀티스레드 ㄴㄴ
멀티스레드에는 그럼 atomic 이용하나요? .. 그럼 shared_ptr은 기존에 포인터가 한 주소를 여러 곳에서 참조 할 수 있는 기능에서 delete 문제를 해결했다고 보면될까요?
공유포인터는 그냥 멍청한 프로그래머가 delete 깜빡하는거 방지하는 용도고
삭제될 때 참조 카운트 변수에 접근해서 카운트 조작으로 이걸 관리하는데 이 작업이 스레드 세이프가 아님
머냐면 서로 다른 스레드의 공유 포인터 두 개가 동시에 사라지는데 둘 다 소멸자에서 어? ㅎ 참조 카운트 2번 남았네 내가 소멸 안 시켜야지
하고 그대로 메모리 누수시켜버릴수도 있는거
멀티스레드 프로그래밍 할때는 가급적 이벤트 메시지 같은걸로 데이터 복사해가면서 넘기는게 좋음
꼭 참조를 해야겠다 그러면 mutex lock 쓰는 래퍼 하나 만들든가
아하 답변 감사합니다. 이해했습니다!