2

I know creation of queues and able to execute single task but how can i execute multiple tasks in parallel.

Concurrent Queue ---->

let concurrentQueue = DispatchQueue(label: "com.some.concurrentQueue", attributes: .concurrent)
concurrentQueue.async {
    //executable code

}

BackgroundQueue without priorities default--->

DispatchQueue.global().async {
    //executable code
}

Backgroundqueue with priorities---->

DispatchQueue.global(qos: .userInitiated).async { //.userInteractive .background .default .unspecified
    //executable code
}

Getting back to the main Queue ---->

DispatchQueue.main.async {
     //executable code
}

All are asynchronous but how can i execute multiple methods at a time how should i code in swift.

Jeen Broekstra
  • 21,642
  • 4
  • 51
  • 73
  • Please don't try to remove your question by editing the question text. If you have a legitimate reason to want the question removed, you should ask a moderator or site admin for help, see https://meta.stackoverflow.com/questions/305484/how-to-delete-my-own-noisy-questions-that-have-answers for more information. – Jeen Broekstra May 11 '18 at 07:06

1 Answers1

6

If you have a for loop method that calls a method and you want to calls this methods concurrent, so just use this :

DispatchQueue.concurrentPerform(iterations: Int, execute: { (count) in
   doSomethingFor(count: count)
}

But if you have some individuals methods that you want to call concurrent, just do like this:

let concurrentQueue = DispatchQueue(label: "com.some.concurrentQueue", attributes: .concurrent)

concurrentQueue.async {
    //executable code
    myFirstMethod()
}

concurrentQueue.async {
    //executable code
       mySecondMethod()
}

This way concurrentQueue, will manages your tasks concurrently itself.

  • Its hard to handle this by `DispatchQeue`. Instead you could use `Operation` and `OperationQeueu`. In that situation you can set maximum Concurrent tasks that is what you want. – Seyed Samad Gholamzadeh Apr 29 '18 at 16:02
  • It's beyond of here to explain it, but if you want a good tutorial about that just have look at this tutorial: https://www.appcoda.com/ios-concurrency/ – Seyed Samad Gholamzadeh Apr 30 '18 at 07:13