내가 var100 내가
Golang의 여러 변수에 별도의 뮤텍스를 적용하는 방법은 무엇입니까?
type var1WithMutex struct {
mu sync.Mutex
var1 int
}
func (v *var1) Set(value int) {
v.mu.Lock()
v.var1 = value
v.mu.Unlock()
}
func (v *var1) Get() (value int) {
v.mu.Lock()
value = v.var1
v.mu.Unlock()
return
}
이 유사 VAR1, VAR2, VAR3 같은 변수의 수백, 거기에이 방법을 사용하여 상호 배타적 만들고 싶어 여러 변수를 ....이
내가 어떻게 모든 어떻게해야합니까 이 코드를 반복하지 않고 상호 배타적입니까?
var1, var2, var3 등은 배열의 일부가 아니며 서로 관련이 없습니다. var2는 int 일 수 있으며 var3은 User {}입니다.
세분화 된 잠금이 필요합니까? 그룹으로 잠그는 일종의 컨테이너에 모든 것을 래핑 할 수 있습니다. 그렇지 않으면 모든 변수에 대해 잠금을 원할 경우 모든 변수에 대해 잠금을 작성해야합니다. 코드 생성과'go gen'을 살펴볼 수도 있습니다. – JimB
혼란 스러워요. var1 유형의 모든 변수는 자체 뮤텍스로 보호됩니다. 'var1'은 변수가 아니라 유형입니다. Get에서 읽은 내용을 잠그는 요령은 무엇입니까? 뮤텍스로 보호해야하는 수백 가지 유형이있는 이유는 무엇입니까? 그냥하지 마. – Volker
@Volker 거기에 두 개의 var1 먼저 "유형"및 구조체 내부에 int 변수가있었습니다. 나는 int var1에 대해 이야기하고 있었다. 이제 유형 이름을 var1WithMutex로 업데이트했습니다. 이제 조금은 분명해. 그런데 ogc-nick이 뒤 따르는 접근법을 찾고있었습니다. 근본적 이었지만 그 순간에 나에게 찾아 오지 않았습니다. –