美文网首页Android开发Android开发
DBFlow源码分析:Transaction相关

DBFlow源码分析:Transaction相关

作者: linheimx | 来源:发表于2016-11-07 11:29 被阅读125次

    事务

    1. 封装

    DBFlow对事务进行封装:Transaction

    封装了什么

    1. 代码的执行
      ITransaction transaction
    2. 执行成功后的回调
      successCallback
    3. 执行失败后的回调
      errorCallback

    2. 执行

    代码封装好了,是为了方便的执行。
    Transaction也担负着执行的职责:

    3. 问题

    数据库只有一个,现在有一堆增删改查相关的事务,他们的执行肯定得考虑到数据同步的问题。这得考虑到数据库的lock与synchronization的问题。

    那么DBFlow如何解决这个问题呢?

    队列

    1.管家:manager

    当你要执行事务的时候,这些事务交给了manager来管理的。

    我们来细看一下这个 manager:

    manager持有队列的对象,对队列进行管理。
    结构如下:


    2. DefaultTransactionQueue

    单独开一个线程去处理这个队列。

    1. queue这个线程持有:LinkedBlockingQueue<Transaction> queue;
    2. 管理这个queue



      注意:queue.take()--》取出并且移除队列的首个元素,若无元素,则会一直等待。此时,线程则阻塞了。

    3. 对外暴露了几个方法:



      向队列中添加,移除某个事务。启动,退出这个线程。

    相关文章

      网友评论

        本文标题:DBFlow源码分析:Transaction相关

        本文链接:https://www.haomeiwen.com/subject/fpqouttx.html