ios개발/개념 정리

<스위프트> Parallel Programming with Swift (Target Queue, Dispatch Group, Barrier, Work Item, Semaphore & Dispatch Source)

studying develop 2020. 3. 24. 18:38

일단 이 글이 지금 까지 본 글중 제일 설명이 잘되어 있다......

[https://medium.com/swift-india/parallel-programming-with-swift-part-2-4-46a3c6262359]

 

 


그래서 동기,비동기 정확한 차이, 비동기 안되는데 언제 비동기 되는거지 , 큐잔아. 들어온 작업 먼저 처리한다면서 비동기가 언제 의미가 있지?

 

그리고 콘커런트랑 시리얼은 정확히 무슨 차이인가, 이해를 해보자 이거지, 콘커런트가 병렬 처리니까, 이 방법이 병렬 처리인건 알겠는데 수행 순서상 들어온게 먼저 시작하긴 할 수 있는건가??

 

프로세스의 우선순위에 관한건 시분할 시스템(라운드 로빈)상에서 우선순위에 따른 건가? 

 


async vs sync 차이는 결과물을 가져오는 순서에 초점을 두고 보라 하시는데?

[https://nesoy.github.io/articles/2017-01/Synchronized]

 

]

Synchronous 에서는  System Call이 끝날때까지 기다리고 결과물을 가져온다.

 

 

 

Asynchronous 에서는  System Call이 완료되지 않아도 나중에 완료가 되면 그때 결과물을 가져온다. 주로 Callback 함수를 통해 결과물을 가져온다. 주로 Callback 함수를 통해 결과물을 가져온다.

Synchronous Vs Asynchronous 차이점

  • 가장 큰 차이점은 결과물을 가저오는 시점이 다르다.

5. Non-Blocking Vs ASynchronous 차이점

System Call이 즉시 Return될 때 데이터의 포함 유무

  • Asynchronous은 요청에 처리 완료와 관계없이 응답한다. 이후 운영체제에서 응답할 준비가 되면 응답한다.

  • Non-Blocking은 요청에 처리할 수 있으면 바로 응답하고 아니면 Error를 반환한다.

6. Blocking Vs Synchronous 차이점

Wait Queue 유무

  • Blocking은 System Call의 Return을 기다리는 동안 필수로 Wait Queue에 머문다.

  • Synchronous은 System Call의 Return을 기다리는 동안 Wait Queue에 머물 수도 아닐 수도 있다.