Java并发列表

时间:2018-02-26 00:03:13

标签: java list dictionary collections concurrency

我目前正在创建一个具有不同线程的软件。该软件接受附加组件。由于附加组件可以访问所有线程,因此列表,地图等内容可以通过附加组件进行编辑和迭代。

我试图弄清楚使这些列表并发的最佳方法,以便附加代码基本上没有锁和同步块。

但我也试图不要失去那么多的性能(就像我会使用CopyOnWrite解决方案一样)。

我目前的想法是创建自己的非并发类型支持的列表,地图等,并在同步块中嵌套方法,如(add,get等)。

由于这是一项很多工作,我只是想知道是否有人可能知道更好的解决方案。

修改1:

我被要求提供有关我的项目的更多信息。如上所述,我有多个线程同时运行所有这些线程都有自己的主循环来执行不同的任务。

在我的应用程序中拥有多个线程背后的整个想法是减轻应用程序的主线程。只要应用程序本身存在,所有这些线程都是活动的。

例如:应用程序的渲染在ThreadA中处理。应用程序的基本数据处理发生在ThreadB中。所有加载项都由ThreadC加载并“启动”。

Add-Ons可以修改ThreadA和ThreadB中的内容。

目前对我来说最简单的解决方案(对于附加开发人员来说最烦人)就是这样做并强制附加开发人员使用锁或同步块。在我看来,迟早会导致异常和死锁(更不用说附加组件的代码会变得非常混乱)

0 个答案:

没有答案