8.LazyVar 코드에서 궁금한 점이 있습니다.
301
작성한 질문수 2
안녕하세요!
0.GCD - 8.LazyVar 코드 중 2) 시리얼큐+Sync로 해결(Thread-safe처리) 부분을 테스트 하다 궁금한 점이 생겨 글 남깁니다.
코드를 실행하면 다음과 같은 결과가 나옵니다. 이때, id 2가 1보다 먼저 나오는 경우가 있습니다. 대부분은 제대로 나오나 가끔 이런 식으로 순서가 바뀌어 나옵니다.
궁금한 점은 for문을 통해 돌렸기 때문에 id 2를 다루는 작업이 id 1을 다루는 작업보다 스레드에 더 늦게 배치될 것이라 예상이 되는데 시리얼 큐를 사용하는데 어떻게 먼저 나올 수 있는 건가요?
감사합니다.
답변 2
1
kimkim333 님!
아, 코드에서 살짝 헷갈리신 것 같은데,
작업을 보내는 큐는 동시로 처리가 되어 있고, 객체의 readVar 계산 속성이 시리얼큐로 처리가 되어 있어서
작업을 보내는 것은 순서가 바뀔 수 있지만, 실제 (객체) 접근시에 시리얼로 처리 되어있어서 lazy var 이슈를 해결할 수 있다는 내용이예요 ^^
그러니 작업의 배치는 동시로 일어나기 때문에 출력의 순서가 바뀔 수 있습니다. ^^
감사합니다. :)
오퍼레이션 큐 질문
0
148
2
2) 오퍼레이션큐(OperationQueue) 강의 질문입니다
0
153
2
warning 뜸
0
169
1
수업자료 markup 에 대해 궁금합니다!
0
287
1
예제 프로젝트 빌드 실패
0
345
2
serial 큐 질문드립니다.
0
262
1
[7-3.DispatchBarrier] 예제 코드 질문
0
337
1
안녕하세요, GCD 관련 질문드립니다..
0
293
1
main.async 작동 질문(+ vs global(),async)
0
443
1
dismiss 되었을 때 종료질문
0
316
1
'동기'와 '동시성 프로그래밍'에 대해 질문드립니다.
0
511
2
Dependency Protocol 관련
1
376
1
시리얼 큐와 sync 관련
0
477
2
sync이지만 Queue에 넣으면 async로 동작한다는 말의 의미
0
660
1
lazy var 이슈로 생긴 여러 변수들은 어디에 있나요?
0
393
1
global큐에 sync로 작업을 보냈을 때는 터지지 않는 이유가 궁금합니다.
1
520
2
비동기 개념에서 무엇을 return하는 거죠??
0
399
1
안녕하세욤
1
350
1
Barrier 작업 관련 질문입니다.
1
352
1
디스패치 그룹
1
386
1
global async안에 global async를 만들게되면 어떻게 되나요??
2
393
2
동기적 함수를 비동기적 함수로 바꾸는 부분에서 질문 있습니다
1
296
2
비동기오퍼레이션 관련 질문
1
378
1
강의자료는 어디에 있나요?
1
328
1





