Thread.join()
方法用于等待一个线程执行完毕后再执行当前线程。在线程安全的集合框架中,可以使用 Thread.join()
方法来确保某个线程在另一个线程完成特定操作后再继续执行。
例如,假设你有一个线程安全的集合框架,如 ConcurrentHashMap
,你希望在线程 A 完成对集合的修改后,线程 B 再从集合中读取数据。你可以使用 Thread.join()
方法来实现这个需求:
public class ThreadSafeCollectionExample {
public static void main(String[] args) throws InterruptedException {
ConcurrentHashMap<String, String> concurrentMap = new ConcurrentHashMap<>();
Thread threadA = new Thread(() -> {
// 对集合进行修改的操作
concurrentMap.put("key", "value");
System.out.println("Thread A finished modifying the collection.");
});
Thread threadB = new Thread(() -> {
try {
// 等待线程 A 完成操作
threadA.join();
// 从集合中读取数据
String value = concurrentMap.get("key");
System.out.println("Thread B read value: " + value);
} catch (InterruptedException e) {
e.printStackTrace();
}
});
// 启动线程
threadA.start();
threadB.start();
}
}
在这个例子中,线程 B 使用 threadA.join()
方法等待线程 A 完成对 ConcurrentHashMap
的修改。这样可以确保在线程 B 从集合中读取数据时,集合已经被正确地修改。