gpt4 book ai didi

ios - 使用CoreData是否可以在同一线程上具有多个上下文?

转载 作者:行者123 更新时间:2023-12-01 17:07:00 26 4
gpt4 key购买 nike

使用CoreData,可以在同一线程上拥有多个上下文吗?在工作中,我们正在争论主线程上是否有多个上下文会导致死锁。我找不到任何理由不这样做,但是我担心当一个主线程上下文保存并合并到另一个主线程上下文中时,可能会导致死锁。

请注意,似乎有一个实际上根本不相关的相关票证:Multiple contexts in the main thread: why and when use them?此票证仅讨论一般情况下使用多个上下文以及上下文是什么,并且实际上从未讨论过在同一线程上使用多个上下文的任何问题。

最佳答案

https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/CoreData/Articles/cdConcurrency.html

看看这里

http://www.cocoanetics.com/2012/07/multi-context-coredata/

如果您选择不使用线程包含模式(即,如果您尝试在线程之间传递托管对象或上下文,依此类推),则必须非常谨慎地进行锁定,结果很可能会抵消您的任何利益否则可能源自多线程。您还需要考虑以下几点:

每当您操作或访问托管对象时,都将使用关联的托管对象上下文。
核心数据不会出现读取是“安全”但更改是“危险”的情况-每个操作都是“危险”的,因为每个操作都具有缓存一致性影响,并且可能触发错误。

受管对象本身不是线程安全的。
如果要跨不同线程使用托管对象,则必须锁定其上下文。

关于ios - 使用CoreData是否可以在同一线程上具有多个上下文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29412040/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com