DropWizard API 和内存持久性 - 竞争条件

DropWizard API and in memory persistence - race condition

我正在使用 DropWizard 创建一个简单的演示系统来创建一个简单的 REST API,它将只使用 HashMapArrayList 来实现数据持久化。

我想知道是否有多个请求进入并且 read/write 数据存在竞争条件。

同步访问这些方法够简单吗?这会缓解任何潜在问题吗?

此演示用于求职面试,因此 API 不会有任何负担。我只想解决潜在的问题,我想知道同步方法是否可以解决问题?谢谢

竞争条件通过正确锁定不同 threads/processes.

使用的对象来解决

您可以使用 Collections.synchronizedMap()Collections.synchronizedList() 来获得正确同步的实例,但如果完整状态由多个对象组成,那可能不适合。

在那种情况下,您应该通过同步对它的所有访问来正确保护完整状态。然后,您将使用集合实例的非同步版本,但同步访问处理所有状态的对象。