Thread.join()
方法用于等待一个线程执行完毕后再执行当前线程。在线程安全的集合框架中,可以使用 Thread.join()
方法来确保某个线程在另一个线程完成特定操作后再继续执行。
例如,假设你有一个线程安全的集合框架,如 ConcurrentHashMap
,你希望在线程 A 完成对集合的修改后,线程 B 再从集合中读取数据。你可以使用 Thread.join()
方法来实现这个需求:
public class ThreadSafeCollectionExample { public static void main(String[] args) throws InterruptedException { ConcurrentHashMapconcurrentMap = 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 = https://www.yisu.com/ask/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 从集合中读取数据时,集合已经被正确地修改。