iOS 다중 스레드 배제 잠금 장치

903 단어

1. 안전 위험 해결 - 상호 배척 잠금

  • 상호 배척 잠금 사용 형식
  • @synchronized(   ) { //          }
      :  1     1  ,        
  • 상호 배척 자물쇠의 장단점
  • 장점: 다중 스레드로 인한 자원 강탈로 인한 데이터 안전 문제를 효과적으로 방지할 수 있다
    단점: CPU 리소스가 많이 소모됨
  • 상호 배척 자물쇠의 사용 전제: 여러 라인이 같은 자원을 빼앗는다
  • 관련 전문 용어: 스레드 동기화
  • 스레드 동기화
    상호 배척 자물쇠는 바로 스레드 동기화 기술을 사용한 것이다

    2. 원자성과 비원자성

  • OC는 속성을 정의할 때nonatomic와atomic 두 가지를 선택한다.atomic:원자속성,setter 방법에 잠금(기본값은atomic)nonatomic:비원자속성,setter 방법에 잠금
  • tomic 잠금 원리
  • @property (assign, atomic) int age;
    - (void)setAge:(int)age
    {
        @synchronized(self) {
            _age = age;
        }
    }

    3. 원자성과 비원자성의 선택

  • nonatomic와 atomic의 대비atomic: 라인이 안전하고 대량의 자원을 소모해야 한다nonatomic: 라인이 안전하지 않고 메모리가 작은 이동 장치에 적합하다
  • iOS 개발의 모든 속성은nonatomic가 같은 자원을 다선정으로 빼앗는 것을 피하고 잠금, 자원 빼앗는 업무 논리를 서버에 맡겨 처리하며 이동 클라이언트의 압력을 줄인다
  • 좋은 웹페이지 즐겨찾기