您好,匿名用户
随意问技术百科期待您的加入

CoreData多线程的同步问题

0 投票

CoreData问题:需要对persistentCoordina加锁,但不知道加在哪些代码合适。不同的NSManagedObjectContext,但公用同一个NSPersistentCoordinator,是否允许两个线程同时进行读操作,而不对NSPersistentCoordinator进行lock?还是不管读和写,都需要对lock coordinator?
之前虽然是多线程操作coredata,没加lock,但是由于工作线程并没有很频繁的操作数据库,因此没出问题。但是现在我的工作线程需要2分钟一次对数据库进行查询、更新的逻辑,所以程序有时可以运行,有时executeFetch时候会卡死,报的错误是deadlock,死锁!很奇怪,我这时候根本就没对数据库加过锁啊!
是因为,coordinator对所有的操作,都会序列化(serialize operations),然后多线程操作coredata时候,我代码里面没有lock coordinator,所以就出现了deadlock的错误?
多谢大家的关注或回答啊!

用户头像 提问 2012年 12月1日 @ Syndra 上等兵 (331 威望)
分享到:

1个回答

0 投票

两分钟一次,一次多久,难道每次操作时间要到秒级吗?
秒级的话自己给线程加个锁,时间更长的话要考虑数据缓存到内存等

用户头像 回复 2012年 12月1日 @ Xerath 上等兵 (312 威望)
提一个问题:

相关问题

0 投票
1 回复 58 阅读
用户头像 提问 2012年 12月1日 @ Diana 上等兵 (326 威望)
0 投票
1 回复 38 阅读
用户头像 提问 2012年 12月1日 @ Ares 上等兵 (353 威望)
0 投票
1 回复 33 阅读
用户头像 提问 2012年 12月1日 @ Akali 上等兵 (237 威望)
0 投票
1 回复 45 阅读
用户头像 提问 2012年 12月1日 @ Dante 上等兵 (290 威望)
0 投票
1 回复 2 阅读

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...