日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

CoreData并发操作模式简介

發布時間:2024/7/23 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CoreData并发操作模式简介 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
iOS5.0中,蘋果為CoreData的并發處理添加了兩個內容。
一、首先介紹第一個內容: CoreData框架中的NSManagedObjectContext類增加新的初始化方法: initWithConcurrencyType:(NSManagedObjectContextConcurrencyType)ct;
1.參數方法介紹: NSManagedObjectContextConcurrencyType一共有三種: (1)NSPrivateQueueConcurrencyType:綁定一個后臺線程。 (2)NSMainQueueConcurrencyType:綁定一個主線程 (3)NSConfinementConcurrencyType:此類型一般不用,這是為了兼容遺留舊代碼用的。此類型不能執行performBlock。
2.ManagedObjectContext的performBlock和performBlockAndWait方法:
(1)performBlock方法: 在上下文隊列中異步執行此block,塞入自動釋放池,然后調用processPendingChanges方法。 - (void)performBlock:(void (^)())block;
(2)performBlockAndWait方法: 在上下文隊列中同步執行此block,調用起來比較安全。 - (void)performBlockAndWait:(void (^)())block;
(3)processPendingChanges方法: 通常情況下上下文會在事件結束時同步改變到對象狀態圖。此方法會明確的觸發此動作。 - (void)processPendingChanges;?
(4)save方法: save保存到磁盤,調用save將自動調用processPendingChanges;
3.線程安全 (1)每一條線程只能有唯一的一個ManagedObjectContext的模式與此相對應,蘋果的官方文檔給出了兩種解決并發問題的方案: ? ? <1>為每個線程創建單獨的ManagedObjectContext,然后多個ManagedObjectContext共享一個獨立的NSPersistentStoreCoordinator,這個是通常推薦使用的方式。 ? ? <2>為每個線程創建單獨的ManagedObjectContext和NSPersistentStoreCoordinator,這個方法在復雜、大并發的情況下使用,特別是需要在幾個上下文中同步更改的場景,但是這個方法會增加內存使用量。 (2)NSManagedObjects不是線程安全的,但是NSManagedObjectIDs是線程安全的。 (3)如果在background保存,則需要通過core data Notification將changes同步到其他contexts。
二、嵌套的ManagedObjectContext
1.概述: 當子Context中做保存操作時,因為子context沒有persistentStoreCoordinator,這個變化會首先推送給他的父context,這個操作將一直傳遞,直到找到沒有父Context的RootContext為止,當rootContext收到這個消息的時候,rootContext自動合并了這次操作,并且做了最終的保存。所以子context查找時,同樣也會首先從父context那里查找而不是直接與persistentStoreCoordinator交流。當使用這種結構時,不需要特別去監聽NSManagedObjectContextObjectsDidChangeNotification 來合并異步操作到主線程,這也是這種結構的方便之處。
2.對于這種結構,有三種并發策略:
策略一: 這個策略可能并不是那么好,寫在這里主要是為了與更好地備選方案進行對比。這個方案的組成部分: (1)NSMainQueueConcurrencyType類型的Main Context,此上下文與persistentStoreCoordinator進行關聯。 (2)NSPrivateQueueConcurrencyType類型的Background Context,Main Context作為它的上級Context。此Context用作數據插入和查詢。
???
策略二 : 此方案的組成部分: (1)NSPrivateQueueConcurrencyType類型的Master Context,此上下文與persistentStoreCoordinator進行關聯。 (2)NSMainQueueConcurrencyType類型的Main Context,作為Master Context的子Context。 (3)NSPrivateQueueConcurrencyType類型的Worker Context,此Context用作數據插入和查詢。
同樣使用嵌套ManagedObjectContext,但是使用PrivateQueue作為主Context。對于Worker Context作操作將會經由MainQueue Context 最終由MasterContext合并。這個方案的好處在于Worker Context都是臨時工,不需要考慮他們的生命周期。另外的一個好處是,由于他們不能自動獲取到來自父親的更新,所以這個任務可以再未完成之前隨時取消。

策略三 : 這個方案相對保守,沒有使用嵌套Context這個新的特性。 此方案的組成部分: (1)NSMainQueueConcurrencyType類型的Main Context,此上下文與persistentStoreCoordinator進行關聯。 (2)NSPrivateQueueConcurrencyType類型的Background Context,此上下文也關聯同一個persistentStoreCoordinator。
Main Context在主線程隊列,Background Context在子線程隊列。數據同步通過通知實現,每個Context都注冊NSManagedObjectContextDidSaveNotification通知,并且在收到通知后調用另一個Context的mergeChangesFromContextDidSaveNotification方法。

總結

以上是生活随笔為你收集整理的CoreData并发操作模式简介的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 超碰人人干人人 | 国产在线观看免费网站 | 午夜草逼 | 蜜臀久久精品久久久用户群体 | www.天堂在线 | 精品人妻一区二区三区四区不卡 | 爱吃波客今天最新视频 | 亚洲欧美日韩国产 | 久久综合区 | 东京热无码av一区二区 | 久久国产乱子伦免费精品 | 毛片无码免费无码播放 | 狠狠人妻久久久久久 | 9l视频自拍蝌蚪9l视频 | 人人妻人人澡人人爽欧美一区 | 亚洲影视一区 | 九九热在线免费观看 | 国产欧美精品aaaaaa片 | 国产亚洲av综合人人澡精品 | 干干干操操操 | 日韩av免费在线观看 | 黄色动漫软件 | 国产色综合视频 | 欧美91av | 日本一级片在线观看 | 亚洲v国产 | 亚洲狠 | 一区二区三区欧美 | 99精品国产99久久久久久97 | 黄色小视频免费网站 | 亚洲中文字幕无码不卡电影 | 国产精品久久久久久在线观看 | 一区二区免费在线视频 | 欧美男同又粗又长又大 | 日韩激情综合网 | 国产xxxx在线 | 久久久久亚洲av片无码 | 大片av| 成人三级做爰av | 日韩av在线网站 | 超碰免费在线观看 | 精品免费观看 | www.中文字幕在线观看 | 欧美精品 在线观看 | 一区成人 | 大尺度在线观看 | 搞中出 | 朝鲜黄色片 | 青青操青青 | 四虎成人精品永久免费av九九 | 日韩αv | 激情av一区 | 亚洲热在线观看 | 亚洲人成7777 | 黑帮大佬和我的365日第二部 | 亚洲福利网| 成长快手短视频在线观看 | 无码精品人妻一二三区红粉影视 | 精品国产乱码久久久久久蜜柚 | 亚洲一级片在线播放 | 一区二区三区免费播放 | julia一区 | 亚洲熟妇丰满大屁股熟妇 | www夜插内射视频网站 | 性视频网址 | 国产熟妇搡bbbb搡bbbb | 国产成人主播 | 伊人青青久 | 美日韩丰满少妇在线观看 | 国精产品一区一区三区mba下载 | 西欧毛片 | 国外精品视频 | 蜜臀视频一区二区三区 | 国产福利一区二区视频 | 成人高潮片免费网站 | 中文字幕精品视频在线 | 日韩成人免费在线视频 | 中文字幕一区二区三区精彩视频 | 日韩深夜福利 | 神马一区二区三区 | 国产美女无遮挡免费视频 | 欧美高清一区 | www.成人在线| 激情六月天婷婷 | 91色多多| 素人一区二区三区 | 久久久久亚洲av无码网站 | 久久久久五月 | 亚洲视频第一页 | 91精品国产手机 | 91久久精品夜夜躁日日躁欧美 | 欧美性生交xxxxx久久久缅北 | 永久免费av无码网站性色av | 人操人人 | 日韩高清二区 | 亚洲人成色777777精品音频 | 欧美freesex黑人又粗又大 | 日本强好片久久久久久aaa | 麻豆影音 |