• Multithreading in iOS
• Grand Central Dispatch
• Queues
• Example
Slide 3
Slide 3 text
Multithreading in iOS
Slide 4
Slide 4 text
• Pthreads : C-based interface for
creating and manipulating threads
• NSThread : Cocoa threads
• Grand Central Dispatch : a
lightweight multithreading engine
developed by Apple Inc
• NSOperation : wrapper for task
Slide 5
Slide 5 text
Pthreads
NSThreads
GCD
NSOperation
complexity
low
high
abstraction level
low
high
Slide 6
Slide 6 text
Grand Central Dispatch
Slide 7
Slide 7 text
What is GCD?
• A lightweight multithreading engine
• Uses a thread pool
• Automatically optimizes threading
• Scheduling of tasks
• Uses look-free exclusion rather than mutual
exclusion
Slide 8
Slide 8 text
• define the tasks
• block or function
• add them to an appropriate dispatch queue
dispatch_async(queue, ^{
some_async_work();
});
Queue types
• Serial Queues
• only one task running at a time
• user queue or main queue
• Concurrent Queue
• tasks started in order but run concurrently
• 3 priority levels: HIGHT, DEFAULT, LOW
Palindromic words
• palindromic words - ճจ
• is a word that reads the same forward as it does
backward : “radar”
• problem
• count the palindromic words in a dictionary
radar
wrong
way
yaw
result = 3