Iphone 当两个线程写入同一个对象时会发生什么?

Iphone 当两个线程写入同一个对象时会发生什么?,iphone,objective-c,Iphone,Objective C,你好 我想知道如果两个线程同时写入一个对象会发生什么? 不确定这是否应该是线程,我有一个视图的多个副本,每个副本访问并写入一个nsuserdefault对象。 如果视图的两个或多个副本写入同一对象,会发生什么情况?有某种锁紧装置吗 谢谢NSUserDefaults类是线程安全的,请参阅。是的,里面可能有某种锁定机制 如果两个线程在没有某种锁定原语的情况下写入同一对象或结构,那么就会发生非常糟糕的事情。充其量,您将以不一致的状态结束。最坏的情况是,你的应用程序将崩溃。NSUserDefaults被

你好 我想知道如果两个线程同时写入一个对象会发生什么? 不确定这是否应该是线程,我有一个视图的多个副本,每个副本访问并写入一个nsuserdefault对象。 如果视图的两个或多个副本写入同一对象,会发生什么情况?有某种锁紧装置吗


谢谢NSUserDefaults类是线程安全的,请参阅。是的,里面可能有某种锁定机制

  • 如果两个线程在没有某种锁定原语的情况下写入同一对象或结构,那么就会发生非常糟糕的事情。充其量,您将以不一致的状态结束。最坏的情况是,你的应用程序将崩溃。NSUserDefaults被定义为线程安全的,所以——是的——它使用某种类型的锁定

  • 如果视图在不同的线程中运行,并且都写入同一个对象,则表明存在完全不同的问题。UIKit不是完全线程安全的。大多数UI交互必须从主线程完成


  • 文档对此有详细说明。

    谢谢joe blow,如果nsuserdefaults是线程安全的,那将为我省去很多麻烦:)这是很多信息。嗯,我将浏览您给我的文档链接。我想我明白你的意思,我要多读书:)