gpt4 book ai didi

ios - FMDB.database.beginTransaction 和 FMDB.databaseQueue.inTransaction 的区别

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:38:12 26 4
gpt4 key购买 nike

代码 A

FMDBDatabase *db = xxxxx
[db beginTransaction];
[db executeUpdate:xxxx];
xxxxxxx

代码 B

FMDBDatabaseQueue *queue = xxxxx
[queue inTransaction:^{xxxxxx}]

database.beginTransaction 和 databaseQueue.inTransaction 有什么区别?正如我所见,inTransaction 只是将 sql 操作放入队列中,但 beginTransaction 似乎在 sqlite 级别执行某些操作。哪一个是线程安全的更好选择,它们之间有什么区别?

最佳答案

不同之处在于,后者除了具有更好的声明性语法外,在多线程应用程序中使用起来相当安全,尤其是在多个线程共享单个数据库连接的情况下。后者使用一次执行一个操作的 FIFO 队列。

关于ios - FMDB.database.beginTransaction 和 FMDB.databaseQueue.inTransaction 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25840090/

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