일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- optional
- 디자인패턴
- 코딩테스트
- delegate
- Foundation
- Swift
- property
- String
- tuist
- Git
- Class
- Method
- Terminal
- instance
- Unicode
- initializer
- url
- Xcode
- init
- struct
- extension
- 이니셜라이저
- initalizer
- UIKit
- interpace
- 스위프트
- enum
- Protocol
- IOS
- type
Archives
- Today
- Total
아리의 iOS 탐구생활
atomically는 프로그래밍에서 무슨 뜻일까... 본문
반응형
NSString에서 write라는 메소드를 살펴보다가 용어가 궁금하여 찾아보았다.
true면 임시 저장소에 백업파일을 먼저 기록하고, 기록이 모두 성공하면 최종 데이터를 지정한 파일에 저장하게 된다.
원본 파일의 손상을 막을 수 있고 시스템이 크래시를 내는 일을 방지한다.
false를 준 뒤 fail이 나면 저장하고자 하는 파일이 충돌이 날 것이다. 빈 파일이라면 상관 없겠지만…
쉽게 얘기하면 true는 파일을 원자적으로 처리하고, false는 원자적으로 처리하지 않는다.
속도면에서는 false가 빠를 수 있겠지만 충돌이 일어날 가능성이 있다.
반면 true는 원자적으로 처리하기 때문에 일어날 충돌을 방지해준다. (안전성이 보장된다는 말이 이런 뜻이겠지.)
프로그래밍에서 원자적(atomically)이라는 말의 뜻은 ‘분리할 수 없음’을 뜻한다
동시에 같은 파일 위치에 여러 스레드에서 접근할 수 있는데, 그것은 막아준다는 의미로 해석할 수 있다.
반응형
'Swift > 문제해결' 카테고리의 다른 글
[iOS/Tuist] Objective-C 코드가 포함된 라이브러리 의존성 주입시 발생하는 문제 (3) | 2023.02.27 |
---|---|
[Xcode Cloud] Tuist로 만든 프로젝트에 Xcode Cloud 적용하는 법 (2) | 2022.12.07 |
[URLRequst] 네트워크 요청 시 캐시 제어 하는 방법 (1) | 2022.09.23 |
Swift의 String index는 왜 정수가 아니지? 왜 구하기 어려울까? (1) | 2021.09.13 |
Cannot use mutating member on immutable value: function call returns immutable value (0) | 2021.09.13 |
Comments