Home | 简体中文 | 繁体中文 | 杂文 | Github | 知乎专栏 | Facebook | Linkedin | Youtube | 打赏(Donations) | About
知乎专栏

10.6. CopyOnWriteArraySet

		
import java.util.concurrent.CopyOnWriteArraySet;  
  
public class CopyOnWriteArraySetExample {  
  
    public static void main(String[] args) {  
        // 创建一个CopyOnWriteArraySet实例  
        CopyOnWriteArraySet<String> set = new CopyOnWriteArraySet<>();  
  
        // 启动一个线程向集合中添加元素  
        new Thread(() -> {  
            for (int i = 0; i < 10; i++) {  
                set.add("Item" + i);  
                try {  
                    // 模拟一些延迟,使得输出更为明显  
                    Thread.sleep(100);  
                } catch (InterruptedException e) {  
                    e.printStackTrace();  
                }  
            }  
        }).start();  
  
        // 启动另一个线程来读取和打印集合中的元素  
        new Thread(() -> {  
            while (set.size() < 10) {  
                // 打印当前集合中的所有元素  
                System.out.println("Current set contents: " + set);  
                try {  
                    // 等待一段时间,以便观察集合的变化  
                    Thread.sleep(200);  
                } catch (InterruptedException e) {  
                    e.printStackTrace();  
                }  
            }  
            // 最后打印完整的集合内容  
            System.out.println("Final set contents: " + set);  
        }).start();  
    }  
}