내 멀티 스레딩 응용 프로그램에서 같은 시간에 많은 인스턴스에서 변경할 수있는 일부 변수를 사용하고 있습니다. 그것은 이상하지만 그것은 아무 문제없이 잘 작동했다.하지만 물론 스레드로부터 안전하게 만들 필요가있다. 나는 자물쇠로 막 시작 했으므로 충고를 부탁한다.속성의 잠금, 좋은 접근법?
클라이언트가 연결되면 각 클라이언트가 자신의 "A"변수를 갖는 클래스 클라이언트가 생성된다. 5 개 클래스가 동시에 (스레드)에서 수행 한 경우에도 지금과까지
Client selectedClient SelectOtherClientClassByID(sentID);
selectedClient.A=5;
문제 없음, 그러나 나는 특성에 잠금 장치를 추가하는 방법에 대해 무엇을 생각했다 :
때때로, 클라이언트 메소드처럼 호출하지 ?
처럼 :
A {
get { return mA; }
set {
// use lock here for settting A to some value
}
}
이 괜찮을까요?
감사합니다 ... btw for reading 다른 클래스의 독서 중 변경 될 수 있기 때문에? – Petr
외부에서 액세스 할 수 있으므로이 설정을 잠그는 것은 좋지 않습니다. –
설정하는 동안 변경 될 수 있습니다. 잠금 장치는 장벽 역할을하여 잠금 장치 소유자가 잠금 장치를 해제 할 때까지 다른 동작을 방지합니다. –