如何处理Android中的生产者和消费者问题

时间:2018-10-28 17:34:21

标签: java android concurrency producer-consumer concurrentmodification

我的服务类中有一个回调方法,该方法每秒都会被调用一次并带有数据列表,并且该方法将被连续写入到JSONArray中,如下所示。

每秒调用一次onDataCapturemethod()。因此,此方法将在一分钟内被调用60次,依此类推。

private void onDataCapture(List<DataModel> model){
    myJsonArray.put(model);
}

我还有另一个调度程序方法,该方法每15秒调用一次。这将从myJsonArray中获取数据并将其发布到服务器。然后它将清除数组。因此,此方法将在一分钟内调用4次,依此类推。

private void storeDataToBackend(){
    for (int i = 0; i < myJsonArray.length(); i++) {
            tempJson.put(myJsonArray.get(i));
    }
    .....
    myJsonArray = new new JSONArray(); // Clearing after storing to backend

}

我的问题: 有时我会在myJsonArray上同时进行读写操作时遇到并发问题。解决Android / Java中此问题的有效方法是什么?请举一个例子。让我知道是否需要更多详细信息。

我已经遍历了CopyOnWriteArrayList,并且它在文档中提到的有点贵。请举例说明在这种情况下可以做什么。

0 个答案:

没有答案