Skip to main content


Showing posts from January, 2021

DispatchGroup vs DispatchSemaphore in iOS (Swift)

  In this post, I will share my knowledge about how to synchronise async code in swift programming language. Puzzled? Let read it to clarify :) In my current project, I had to develop a solution where I need to  perform multiple api calls in a loop, but synchronously and application should not freeze . Initially, I tried with DispatchGroup, but this approach was successful only if I have to run all apis calls asynchronously. Let’s look at below code snippet which illustrate the difference between DispatchGroup and DispatchSemaphore. DispatchGroup: In below example, api.performSomeAction() will be executed concurrently. This method call api in asynchronous manner.     /// - parameter ids: Array of identifer which will pass to api's post data     private func insertData(ids: [String]) {                  let group = DispatchGroup()                  ///Method which will execute when below if loop completes // (When dispatch group is notified)         func completion() {