Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java DropWizard API和内存中持久性-竞争条件_Java_Race Condition_Dropwizard - Fatal编程技术网

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

Java DropWizard API和内存中持久性-竞争条件,java,race-condition,dropwizard,Java,Race Condition,Dropwizard,我正在使用DropWizard创建一个简单的演示系统来创建一个简单的RESTAPI,它将只使用HashMap和ArrayList进行数据持久化 我想知道有多个请求进入,并且存在读取/写入数据的竞争条件 同步访问这些方法是否足够简单?这会缓解任何潜在问题吗 此演示用于工作面试,因此API上不会有任何重大负载。我只是想解决潜在的问题,我想知道同步方法是否能解决这个问题?谢谢。通过正确锁定不同线程/进程使用的对象来解决争用条件 您可以使用Collections.synchronizedMap()和Co

我正在使用DropWizard创建一个简单的演示系统来创建一个简单的RESTAPI,它将只使用
HashMap
ArrayList
进行数据持久化

我想知道有多个请求进入,并且存在读取/写入数据的竞争条件

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


此演示用于工作面试,因此API上不会有任何重大负载。我只是想解决潜在的问题,我想知道同步方法是否能解决这个问题?谢谢。

通过正确锁定不同线程/进程使用的对象来解决争用条件

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

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