무엇이 더 좋습니까? 두 옵션간에 런타임에 차이가 있습니까?C# Lock 인스턴스 인스턴스 멤버 VS 고정 정적 멤버
1
A
답변
2
정적 인스턴스 잠금 및 인스턴스 멤버 잠금 사이에는 런타임 차이가 없습니다. 그러나 인스턴스 잠금을 사용하고 정적을 업데이트하는 경우 코드가 손상 될 수 있습니다.
class Broken {
static int myCounter;
object synch = new object();
void SomeMethod()
{
lock (synch) { // BAD
++myCounter;
}
}
}
0
허? 나는 그것이 당신이 잠그고있는 것에 의존해야한다고 생각했습니다. 비 정적 객체를 잠 그려는 경우 비 정적 객체를 잠그고 있어야합니다. 그런데, 당신은 당신이 무엇을하려고하는지에 대해 조사하고 싶을지도 모릅니다. 대부분의 경우, 이미 thread에 안전한 오브젝트 내장 언어가 있습니다.
0
왜 비 정적 방법을 잠그고 있습니까? 일반적으로 공유 리소스 (예 : 모든 스레드에서 공유되는 리소스)에 액세스하는 경우에만 동기화가 필요합니다. 인스턴스 메소드로는 이것을하지 않을 것입니다. 싱글 톤을 원할 것입니다.
관련 문제
- 1. 인스턴스 클래스의 정적 멤버
- 2. 정적 멤버 변수를 포함하는 객체 인스턴스
- 3. Stateless와 Stateless EJB의 인스턴스 멤버
- 4. C++ 정적 템플릿 멤버, 각 템플릿 유형에 대해 하나의 인스턴스?
- 5. C++의 정적 멤버
- 6. 클래스의 C++ 정적 멤버
- 7. C++ 정적 멤버
- 8. Objective-C 정적 인스턴스
- 9. C++ : 기본 정적 멤버 숨기기
- 10. C#의 정적 멤버 상속
- 11. 자바 정적 멤버 메모리 누수
- 12. 정적 멤버 함수를 언제 사용합니까?
- 13. 비 정적 멤버 함수에 대한 C++ 함수 포인터 (클래스 멤버)
- 14. 정적 멤버 인덱스 된 속성
- 15. 정적 변수 대 멤버
- 16. Java의 정적 멤버
- 17. 정적 멤버 함수
- 18. 개체 정적 멤버 초기화
- 19. 정적 대 멤버 변수
- 20. 정적 멤버 및 상속
- 21. PHP의 정적 멤버 초기화
- 22. 정적 멤버 변수
- 23. 정적 멤버 문제는 - jni4Net
- 24. F 번호 정적 멤버
- 25. MooTools에서 정적 멤버 상속
- 26. 비즈니스 개체 : 개인 인스턴스 VS 단일 인스턴스
- 27. 데이터 멤버 조작 (C++)
- 28. 정적 불변 기본 인스턴스
- 29. C++ static 멤버 함수에서 private 멤버 변수를 변경하십시오.
- 30. [Ruby] : 클래스 인스턴스 멤버 값을 다른 클래스 함수에 전달
그래서 클래스의 정적 객체를 잠그는 것이 가장 좋습니다. – Eyal
난 항상 잠금 목적으로 정적을 사용 해왔다. –
ok 고맙습니다. -이게 내가 할일입니다! – Eyal