【问题标题】:Are there any way to use a Parallel Stream with Realm?有什么方法可以在 Realm 中使用并行流?
【发布时间】:2020-05-01 15:16:08
【问题描述】:

我正在寻找一种将并行流与 RealmResults 列表一起使用的方法。问题是 Realm 对在线程之间使用 RealmResults 有限制。

这是我想使用的代码:

RealmResults<RealmModel> entitiesDAO = query.findAll();

final ModelMapper modelMapper = new ModelMapper();

final List<In> entities = entitiesDAO.stream().parallel().map(entityDAO -> {
     final In entity =  modelMapper.map(entityDAO, typeIn);
     return entity;
}).collect(toList());

//This code works perfectly without parallel streams:
/*final List<In> entities = entitiesDAO.stream().map(entityDAO -> {
    final In entity =  modelMapper.map(entityDAO, typeIn);
    return entity;
}).collect(toList());*/

【问题讨论】:

    标签: android parallel-processing realm java-stream


    【解决方案1】:

    我已经找到了方法,你必须使用冻结的物体。

    当你创建你的 Realm 对象时,你必须这样做:

    final Realm realm = Realm.getDefaultInstance().freeze();
    

    您可以在 Realm 文档中查看它:https://realm.io/docs/java/latest/ 在冻结对象部分。

    【讨论】:

      猜你喜欢
      • 2016-05-02
      • 1970-01-01
      • 1970-01-01
      • 2011-12-13
      • 1970-01-01
      • 2020-04-30
      • 1970-01-01
      • 2015-08-22
      • 1970-01-01
      相关资源
      最近更新 更多