DropWizard API 和内存持久性 - 竞争条件
DropWizard API and in memory persistence - race condition
我正在使用 DropWizard 创建一个简单的演示系统来创建一个简单的 REST API,它将只使用 HashMap
和 ArrayList
来实现数据持久化。
我想知道是否有多个请求进入并且 read/write 数据存在竞争条件。
同步访问这些方法够简单吗?这会缓解任何潜在问题吗?
此演示用于求职面试,因此 API 不会有任何负担。我只想解决潜在的问题,我想知道同步方法是否可以解决问题?谢谢
竞争条件通过正确锁定不同 threads/processes.
使用的对象来解决
您可以使用 Collections.synchronizedMap()
和 Collections.synchronizedList()
来获得正确同步的实例,但如果完整状态由多个对象组成,那可能不适合。
在那种情况下,您应该通过同步对它的所有访问来正确保护完整状态。然后,您将使用集合实例的非同步版本,但同步访问处理所有状态的对象。
我正在使用 DropWizard 创建一个简单的演示系统来创建一个简单的 REST API,它将只使用 HashMap
和 ArrayList
来实现数据持久化。
我想知道是否有多个请求进入并且 read/write 数据存在竞争条件。
同步访问这些方法够简单吗?这会缓解任何潜在问题吗?
此演示用于求职面试,因此 API 不会有任何负担。我只想解决潜在的问题,我想知道同步方法是否可以解决问题?谢谢
竞争条件通过正确锁定不同 threads/processes.
使用的对象来解决您可以使用 Collections.synchronizedMap()
和 Collections.synchronizedList()
来获得正确同步的实例,但如果完整状态由多个对象组成,那可能不适合。
在那种情况下,您应该通过同步对它的所有访问来正确保护完整状态。然后,您将使用集合实例的非同步版本,但同步访问处理所有状态的对象。