book--concurrency-by-tutorials icon indicating copy to clipboard operation
book--concurrency-by-tutorials copied to clipboard

Projects, playgrounds, and other materials made while following along with the Ray Wenderlich book "Concurrency by Tutorials"

Concurrency by Tutorials

Projects, playgrounds, and other materials made while following along with the Ray Wenderlich book "Concurrency by Tutorials".

Contents

  • Chapter 3: Queues & Threads

    • How to use a GCD queue to offload work from the main thread.
    • What is a thread? And, perhaps more importantly, how do we operate with them in the context of Apple platforms?
  • Chapter 4: Groups & Semaphores

    • How to submit multiple tasks to a queue, which need to run together as a "group" so that we can be notified when they have all completed.
    • Wrapping an existing API so that it can be called asynchronously.
  • Chapter 5: Concurrency Problems

    • Some of the common pitfalls encountered while executing concurrent tasks.
  • Chapter 6: Operations

    • Utilizing the Operation class to gain more powerful control over concurrent tasks.
  • Chapter 7: Operation Queues

    • Similar to Dispatch Queues, but for Operation instances.
  • Chapter 8: Asynchronous Operations

    • Making operations themselves asynchronous now that we can submit them to Operation Queues.
  • Chapter 9: Operation Dependencies

    • The "killer feature" of Operations is being able to tell the OS that one operation is dependant on another and shouldn't being until the dependency has finished.
  • Chapter 10: Cancelling Operations

    • Cancelling operations when they're running — or before they've even started.
  • Chapter 11: Core Data

    • Core Data works well with concurrency — as long as a few specific rules are kept in mind. This chapter covers just that.
  • Chapter 12: Thread Sanitizer

    • Data races occur when multiple threads access the same memory without synchronization, and at least one access is a write. This chapter covers using Apple’s Thread Sanitizer to detect data races.