Managed Object Contexts cannot be shared across threads and objects cannot be passed between threads. Core Data supports concurrency through contexts with different queue types (main vs private queue). Child contexts allow sharing objects and changes with a parent context on a different thread or for temporarily storing changes. Core Data supports migrations to handle changes to the data model over time through lightweight and custom migrations.