首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >了解J2ME中RecordStore的同步需求

了解J2ME中RecordStore的同步需求
EN

Stack Overflow用户
提问于 2012-01-26 02:55:18
回答 1查看 227关注 0票数 3

RecordStore documentation上阅读,你可以读到以下内容:

Record store implementations ensure that all individual record store operations are atomic, synchronous, and serialized, so no corruption will occur with multiple accesses.

然后在下一句话中:

However, if a MIDlet uses multiple threads to access a record store, it is the MIDlet's responsibility to coordinate this access or unintended consequences may result.

我不确定这是怎么回事。操作是原子的和同步的,但我必须自己同步访问吗?假设我不需要迭代记录,那么对于简单的添加/更新/删除函数,我需要什么类型的同步呢?

如果我确实需要迭代,如果我使用RecordEnumerationenumerateRecords方法是获取RecordStore的快照,还是直接连接到它?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-01-26 16:29:16

但是,如果MIDlet使用多个线程来访问记录存储,则MIDlet负责协调这种访问,否则可能会导致意外的后果。

我认为这意味着两个线程同时读取和写入存储中的记录可能会产生不期望的结果;特别是当您依赖于特定顺序的存储,或者记录具有已知的索引时。

您的第二个问题在RecordStore.enumerateRecords()的Javadoc中得到了回答

keepUpdated -如果为true,则枚举器将使其枚举与记录存储的记录中的任何更改保持最新。请谨慎使用,因为这可能会导致性能问题。如果为false,则枚举将不会保持最新,并且可能会为已删除的记录或稍后添加的遗漏记录返回recordIds。它还可能无序地返回在生成枚举后修改过的记录。请注意,当稍后直接或通过枚举检索记录时,对记录存储区中记录的任何更改都会准确地反映出来。将此参数设置为false的风险是在修改、添加或删除记录时枚举的筛选和排序顺序。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9008499

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档