찾다

 >  Q&A  >  본문

object-c - @property의 Atomic 키워드에 대한 이해에 대해 몇 가지 질문을 드리고 싶습니다.

1. 멀티 스레드 안전성을 배울 때 여러 스레드가 동시에 실행될 때 동일한 리소스에 대한 "동시" 액세스를 방지하기 위해 동기화 잠금을 사용하는 방법을 배웠습니다. 예전에 원자를 배울 때 이 키워드를 사용하여 속성이 스레드로부터 안전한지 여부를 설정했던 기억이 납니다. 그래서 프로그램에서 동기화 잠금을 끄고 위의 키워드를 사용하여 속성을 정의했습니다. 그러나 멀티 스레드 작업을 수행한 후에 이 설정이 스레드 안전성을 달성하지 못하는 것을 발견했습니다. 내 이해가 어디에서 잘못되었는지 물어봐도 될까요?

내 프로그램 코드는 다음과 같습니다.

으아아아

다음은 출력의 일부입니다. 98 두 개가 출력된다는 점에 유의하세요

으아아아
大家讲道理大家讲道理2825일 전614

모든 응답(2)나는 대답할 것이다

  • 高洛峰

    高洛峰2017-05-02 09:31:14

    _totalTicket--은 setter getter 메소드를 통하지 않고 인스턴스 변수를 직접 조작하고, 다음과 같이 스레드 안전성을 보장하기 위해 속성을 읽고 쓸 때 잠기는 원자 속성을 추가하는 것입니다

    으아아아

    따라서 액세스하려면 . 구문을 사용해야 합니다. 그러나 Atomic은 스레드로부터 절대적으로 안전하지 않습니다
    관련 정보

    회신하다
    0
  • 我想大声告诉你

    我想大声告诉你2017-05-02 09:31:14

    아. 답변해 주셔서 감사합니다. 이번 아토믹은 좀 불만족스럽다고 생각합니다. 잘 보고 있습니다. 감사합니다!

    회신하다
    0
  • 취소회신하다