> Manager::GetInstance()->set(1); // 여기까지 전부 세이프한지....
이게 안전할 이유가 없지요. 이 때의 쓰레드 안전성은 T 타입이 책임지거나 그렇지 않다고 하면 T 타입을 사용하는 쪽에서 신경을 써줘야하는 부분입니다. 싱글톤 패턴과는 아무런 관련도 없습니다.
> Manager* m = Manager::GetInstance(); // 이렇게 따로 받아서 사용할 경우에는 어떻게 되는건지....
프로그래밍 공부를 제대로 다시하시는 것이 좋을 것 같습니다. GetInstance 메소드의 안전성부터 스스로 잘 다시 따져보세요. 제대로 이해 못하고 계신 것 같습니다.
그럼
이런식으로 락을 걸어줘야 되는거군요???
void set(int i) { lock; a += i; unlock; }
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
>
> Manager::GetInstance()->set(1); // 여기까지 전부 세이프한지....
이게 안전할 이유가 없지요.
이 때의 쓰레드 안전성은 T 타입이 책임지거나 그렇지 않다고 하면 T 타입을 사용하는 쪽에서 신경을 써줘야하는 부분입니다.
싱글톤 패턴과는 아무런 관련도 없습니다.
> Manager* m = Manager::GetInstance(); // 이렇게 따로 받아서 사용할 경우에는 어떻게 되는건지....
프로그래밍 공부를 제대로 다시하시는 것이 좋을 것 같습니다.
GetInstance 메소드의 안전성부터 스스로 잘 다시 따져보세요.
제대로 이해 못하고 계신 것 같습니다.
음... 그럼 락을 걸어줘야 되는거군요....??
그럼
이런식으로 락을 걸어줘야 되는거군요???
void set(int i) { lock; a += i; unlock; }
댓글 달기