1. 멀티 스레드 안전성을 배울 때 여러 스레드가 동시에 실행될 때 동일한 리소스에 대한 "동시" 액세스를 방지하기 위해 동기화 잠금을 사용하는 방법을 배웠습니다. 예전에 원자를 배울 때 이 키워드를 사용하여 속성이 스레드로부터 안전한지 여부를 설정했던 기억이 납니다. 그래서 프로그램에서 동기화 잠금을 끄고 위의 키워드를 사용하여 속성을 정의했습니다. 그러나 멀티 스레드 작업을 수행한 후에 이 설정이 스레드 안전성을 달성하지 못하는 것을 발견했습니다. 내 이해가 어디에서 잘못되었는지 물어봐도 될까요?
내 프로그램 코드는 다음과 같습니다.
으아아아다음은 출력의 일부입니다. 98 두 개가 출력된다는 점에 유의하세요
으아아아
으아아아_totalTicket--
은 setter getter 메소드를 통하지 않고 인스턴스 변수를 직접 조작하고, 다음과 같이 스레드 안전성을 보장하기 위해 속성을 읽고 쓸 때 잠기는 원자 속성을 추가하는 것입니다따라서 액세스하려면 . 구문을 사용해야 합니다. 그러나 Atomic은 스레드로부터 절대적으로 안전하지 않습니다
관련 정보
아. 답변해 주셔서 감사합니다. 이번 아토믹은 좀 불만족스럽다고 생각합니다. 잘 보고 있습니다. 감사합니다!