好的,我很抱歉标题。我真的不知道如何表达这个。我会在这里更好地尝试。
所以,我有 2 个 Java 类。我们称它们为FirstClass和SecondClass(实现 Runnable)。在FirstClass中,我正在做一些事情,然后我正在创建 4 个线程。
Thread t1 = new Thread (new SecondClass(s1));
Thread t2 = new Thread (new SecondClass(s2));
Thread t3 = new Thread (new SecondClass(s3));
Thread t4 = new Thread (new SecondClass(s4));
s1、s2、s3和s4都是String类型并保存单独的值。
然后我立即开始线程。
t1.start();
t2.start();
t3.start();
t4.start();
然后在我的SecondClass中,我在默认构造函数中使用这些字符串,如下所示
HashMap<String, Integer> map;
public SearchResults(String s) {
map.put(s, 0);
}
在 run() 方法中,我正在执行以下操作
public void run() {
try {
System.out.println(map);
} catch (Exception e) {
// TODO: handle exception
}
}
所以这个无用程序的结果是map被打印了 4 次,有 4 个不同的值。
我想知道如何返回一个map实例,该实例包含t1放入其中的所有值以及t2放入其中的所有值等等。它们都在使用同一个变量map,但每个线程都是自己的事情似乎。
我是否可以让线程执行,然后当它们全部完成时,将映射返回到另一个类或其他什么?我真的不太了解线程,所以这让我很困惑。任何帮助将不胜感激。