두 개 이상의 다른 객체가 공유하는 객체를 관리하는 것이 가장 좋습니다. 다른 스레드에서 실행 중일 때도?C++ 공유 객체의 핸들 관리 문제
예를 들어 A가 생성되고 B와 C에 대한 포인터가 지정됩니다. ObjA A = new ObjA(); B-> GiveObj (A); C-> GiveObj (A);
이제 어떻게 objA를 삭제할 수 있습니까?
지금까지 나는 얼마나 많은 레퍼런스가 있는지 모니터하고있다.이 카운터가 0 일 때 A가 지나면 수신자가 A-> Aquire()를 호출 할 때와 같이 완료된다.
또는 B-> RemoveObj (A)와 C-> RemoveObj (A)를 말할 수 있는데, 그 문제는 B 또는 C가 다른 스레드에서 실행 중인지, 그들은이 함께 할 때까지 나는 삭제할 수 없습니다, 그들은 RemoveObj 전화를 보았다. (지저분한 플래그의 무리를 필요로합니다).
가이 가능한 신호/슬롯으로,이 작업을 수행 할 수있는 좋은 방법이 있을까요?
을감사합니다