objc如何获取一个固定的非主线程?

2013-04-24 18:15:24 +08:00
 yellowV2ex
由于多个栏目,需要同时初始化并读sqlite的表,内容浏览时有事也会一起更新多个表。
现在是用 `performSelectorInBackground` 读取数据库,完成后通知主线程做一些操作,
但多个 `performSelectorInBackground` 同时读数据库时,有时就会报错跳出,断点的位置返回是数据库正在操作或锁定无法介入。

原因大概是多个线程同一时间对数据库进行操作,导致冲突报错。
全部数据库都改在主线程 `performSelectorOnMainThread` 的话,他们就会顺序执行不会报错,但在主线程他们就会导致界面卡顿。

如何获取一个固定非主线程,然后让一些方法都到一个固定的线程里执行呢?
2563 次点击
所在节点    问与答
4 条回复
alexrezit
2013-04-24 18:18:23 +08:00
用一个 shared instance, 自己创建一个 queue.
RoCry
2013-04-24 19:03:11 +08:00
dispatch_queue_t theQueue = dispatch_queue_create("com.rocry.someQueueName", DISPATCH_QUEUE_SERIAL);
ytzong
2013-04-24 20:11:33 +08:00
果断Fmdb的queue啊
yellowV2ex
2013-04-24 20:12:22 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/66853

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX