在我的应用程序中,我有两个线程。线程 1 正在向线程 2 传输数据。数据传输后,线程 1 中的数据在线程 2 中被清除。线程 1 继续在 HashMap 中放置更多数据,以便稍后传输到线程 2。与此同时,线程 2 对数据进行了它需要做的事情。我下面的代码是线程 2 中发生线程之间数据传输的部分。整个应用程序工作得很好,但我的问题是,有没有更好的方法来为线程 2 制作线程 1 数据的副本,而不使用关键字 new 来创建一个全新的对象?
我认为这样做可能会导致更多的垃圾收集发生?我不应该担心这个吗?
synchronized(this){
// Make a copy of the data map then clear it.
cachedData = new HashMap<String,ArrayList<Float>>(data);
data.clear();
}