Codenameone并发或同步访问数据结构

时间:2018-01-31 02:50:07

标签: codenameone

我注意到java.util.concurrent包不包含在Java的CN1子集中。另一方面,我注意到CN1 lib包含位于java.util包中的ConcurrentModificationException。

  1. 为什么不包含并发包?我不知道有任何技术原因吗?
  2. 我如何保证不会遇到难以调试的并发问题?

1 个答案:

答案 0 :(得分:0)

并发软件包在Java之后添加,语言支持并发访问,之前通过synchronized关键字和其他语言级别语义。

ConcurrentModificationException与并发包无关,因为它与集合API有关。处理共享资源的并发访问有很多策略,这一切都取决于你正在处理的情况,但这里有几个重要的区别:

  • 在设备上创建线程很糟糕。您没有多个内核可供使用,即使您在单独的线程中运行,也会影响UI性能,因此您应该尽量减少线程创建的性能。 Codename One通过在EDT上执行几乎所有操作来内部采用此策略,从而避免线程同步的开销并清除本机线程访问的可移植性https://www.codenameone.com/manual/edt.html

  • 我们在网络线程上建立网络,但提供内置的API& amp;回到EDT的回调。简化的Easy Thread

  • 也暴露了这种机制