+ All Categories
Home > Technology > Concurrent Programming in iOS

Concurrent Programming in iOS

Date post: 11-Apr-2017
Category:
Upload: sam-mejlumyan
View: 46 times
Download: 0 times
Share this document with a friend
19
Concurrent Programming Sam Mejlumyan
Transcript
Page 1: Concurrent Programming in iOS

Concurrent Programming

Sam Mejlumyan

Page 3: Concurrent Programming in iOS

What about we’ll talk

• What is Concurrent Programming

• Concurrency APIs on iOS

• Challenges of Concurrent Programming

Page 4: Concurrent Programming in iOS

Concurrent vs. Parallel

Page 5: Concurrent Programming in iOS

Concurrency APIs on iOS

• Threads

• GCD

• Operation Queues

• Run Loops

Page 6: Concurrent Programming in iOS

Threads

• POSIX thread API

• The basic for GCD and Operation queues

• Objective-C wrapper – NSThread

Page 7: Concurrent Programming in iOS

Pthreads• Thread management - creating, joining threads

• Mutexes

• Condition variables

• Synchronization between threads using read/write locks and barriers

• Use when create application for different platform

Page 8: Concurrent Programming in iOS

Objective-C wrapper around pthreads

NSThread

Page 9: Concurrent Programming in iOS

GCD

• Low-Level API

• You don’t interact with threads directly

• Five different queues

Page 10: Concurrent Programming in iOS

GCD

Page 11: Concurrent Programming in iOS

GCD

Page 12: Concurrent Programming in iOS

Quality of Service• userInteractive

• userInitiated

• default

• utility

• background

• unspecified ••

Page 13: Concurrent Programming in iOS

Operation Queue features

• maxConcurrentOperationCount property

• sorting of operations

• specify dependencies between operations

• cancelation mechanism

• KVO

• state of operation

Page 14: Concurrent Programming in iOS

Sharing of ResourcesRace condition

Page 15: Concurrent Programming in iOS

Mutual Exclusion

Page 16: Concurrent Programming in iOS

Dead Locks

Page 17: Concurrent Programming in iOS

Priority Inversion

Page 18: Concurrent Programming in iOS

Conclusion

• pull out the data on the main thread

• use an operation queue to do the actual work in the background

• finally get back onto the main queue

Page 19: Concurrent Programming in iOS

vk.com/s.mejl


Recommended