Mastering Concurrency in iOS - Part 2 (Dispatch Queues, Quality of Service, Attributes)

preview_player
Показать описание
In this video, I have discussed Dispatch Queues in detail. System provided queues, custom queues, main queue, Quality of Service, why QoS was introduced, attributes like concurrent, initiallyInactive.
Apart from these, a little advanced concepts like target queue, and auto release frequency have also been discussed.

00:00 Start
1:50 Main Queue
3:32 Global Concurrent Queues
7:47 Quality of Service
17:57 QoS in Action (code)
23:04 Attributes
24:03 Target Queue
28:28 Target Queue in Action (code)
33:36 Auto Release Frequency
39:44 Custom Queue using Main Thread
Рекомендации по теме
Комментарии
Автор

Sorry to comment again… this video series is absolutely blowing my mind. Such interesting content. The fact that the system decides to delegate tasks on the main thread in order not to freeze the rest of tasks when running synchronously is another example of how meticulous and detailed Apple designs it’s system. Unexpected outcome, but it makes sense and I love it! Congrats and thanks for these very well explained concepts!

arthurschilling
Автор

I listen only audio without video, still able to grasp many of the concepts.... Clear explanation throughout.

I did watch the video again for the code examples my habit to listen podcasts while driving. 😊

swapnilmore
Автор

One of the best explanations of Concurrency I have come across. Really a great one. Even someone who has no idea about concurrency can understand the topics. Well done.

mahendranj
Автор

I'm an android dev trying to understand iOS concepts so that I can write kmm libraries. This is the clearest explanation of gcd. Thank you

ShibasisPatnaik
Автор

Im not joking

The way he explain concept, deep dive in the problem and provide improvement are really interview style. I passed my interview with help of this video. Thank you, keep doing this video !!!

TheMihirpatel
Автор

I feel so lucky to have looked for this topic and found this video, especially just less than a week after it was uploaded! very informative and helpful! Can't wait for the interview questions video as I got my interview in about a week! Pressure is on! Thanks so much again! :)

arthurschilling
Автор

You've given your best explaining these concepts Pallav.
These things can be very confusing, I've been there.
This is, by far, one of the best series on any swift topics.
I can imagine how much hard work has gone into grasping all this and making the series comprehensive enough for all out there.
Thanks for sharing your years of hard work and knowledge with us and enlighten us.
Really appreciate.

roshanthapa
Автор

The examples you have in these videos are extremely helpful. I really appreciate how you give an example and then give time to pause to think through the order of task completion is wonderful and helps me so much to understand the concepts. I said it on the last video and will say it again, this is the best video I've seen to help understand these tough concepts. You are doing a great job, thank you very much.

sarahstice
Автор

Hey Pallav, really admire your work, I have 11 years of iOS developer experience but the way you explained really eye opener for me. I am using custom queues from long time but my thinking was little bit wrong. You cleared the concept, eagerly waiting for next videos.

sachinpatil
Автор

Crystal clear explanation!!! Kudos for the effort you are putting to explain each and every concept from basics to advanced!

anushacheedella
Автор

Great work Pallav. I am also an ios dev working in Byju's hope oneday we will meet for a great discussion 😊.

ashutossahoo
Автор

Thank you sir, It is very helpfull, Amazing skills you have to teach other such heavy topics in a very easy way.

ashupainuly
Автор

Hey pallav your videos on iOS app development are very good and understandable. please upload maximum videos in one month

sambhajihajare
Автор

Question: if a custom queue inherits behaviour from the target queue and then if you don't explicitly specify a target then as you mentioned it will use the default global queue as it's target (qos: default) then: at this point custom queue is by default concurrent queue no matter what attribute you specify because in last video you mentioned all global queues are concurrent in nature?

That means in 31:18, queue A should actually be concurrent queue no?

Is this some missing explanation to this?
More specifically "If custom queues always inherit target queues then in case of serial custom queues what queue will be the default target queue? "

ImTheShrey
Автор

To understand how target queues consolidate threads, this is a better example. If you use the example given where there are only two queues a and b, and a targets b, you will still have separate threads.

let t = DispatchQueue(label: "T")

// try removing the target parameter to see the difference in thread
let a = DispatchQueue(label: "A", attributes: .concurrent, target: t)
let b = DispatchQueue(label: "B", target: t)

a.async {
for num in 1...5 {
print("\(num) \(Thread.current)")
}
}

a.async {
for num in 6...10 {
print("\(num) \(Thread.current)")
}
}

b.async {
for num in 20...24 {
print("\(num) \(Thread.current)")
}
}

iOSDeepDive
Автор

This man is just awesome with great content and thoughts on every topic he covered in his videos collection. 🤞

techguy
Автор

Good explanation as always. heavily depending on your explanations. thanks mate. Cheers!!!

chathuraellawala
Автор

Super hero, Very well explained.Thanks

anubhavjain
Автор

Hi Pallav, this content, is next level keep making more & more

byaruhaf
Автор

Thanks for the awesome video! I have a question about the target queue. I see the video mentioned if we don't specify a target queue, it's 'default priority global queue' by default. Does it mean by default the target queue is a concurrent queue even if the DispatchQueue is a serial queue? Thanks

handshadowfun