package org.example.testConcurrentSkipListSet;
import java.util.Iterator;
import java.util.Set;
import java.util.concurrent.ConcurrentSkipListSet;
public class Main {
// private static Set<String> set = new TreeSet<>();
private static Set<String> set = new ConcurrentSkipListSet<>();
private static void printAll() {
String value = null;
Iterator iter = set.iterator();
while (iter.hasNext()) {
value = (String) iter.next();
System.out.print(value + ",");
}
System.out.println();
}
private static class MyThread extends Thread {
public MyThread(String name) {
super(name);
}
@Override
public void run() {
int i = 0;
while (i++ < 10) {
String val = Thread.currentThread().getName() + "-" + i;
set.add(val);
printAll();
}
}
}
public static void main(String[] args) {
new MyThread("a").start();
new MyThread("b").start();
}
}
/*
a-1,b-1,
a-1,b-1,
a-1,a-1,a-2,b-1,b-2,
a-2,b-1,b-2,b-3,
a-1,a-2,a-1,a-2,a-3,b-1,b-2,b-3,
a-1,a-2,a-3,a-4,b-1,b-2,b-3,
a-1,a-2,a-3,a-4,a-5,b-1,b-2,b-3,
a-3,b-1,a-1,b-2,a-2,b-3,
a-3,a-4,a-5,a-6,b-1,b-2,a-1,b-3,a-2,b-4,
a-3,a-4,a-1,a-5,a-2,a-6,a-3,a-7,a-4,b-1,a-5,b-2,a-6,b-3,a-7,b-4,
b-1,b-2,a-1,b-3,a-2,b-4,a-3,b-5,
a-4,a-5,a-1,a-6,a-2,a-7,a-8,b-1,b-2,b-3,b-4,a-3,b-5,
a-4,a-5,a-1,a-6,a-2,a-7,a-3,a-8,a-4,b-1,a-5,b-2,a-6,b-3,a-7,b-4,a-8,b-5,b-1,b-6,
b-2,b-3,b-4,b-5,b-6,
a-1,a-2,a-3,a-4,a-5,a-6,a-7,a-8,a-9,b-1,b-2,b-3,b-4,b-5,b-6,b-7,
a-1,a-2,a-3,a-4,a-5,a-6,a-7,a-8,a-9,b-1,b-2,b-3,b-4,b-5,a-1,b-6,a-10,b-7,
a-2,a-3,a-4,a-5,a-6,a-7,a-8,a-9,b-1,b-2,b-3,b-4,a-1,a-10,a-2,b-5,b-6,b-7,b-8,
a-3,a-4,a-5,a-6,a-7,a-8,a-9,b-1,b-2,b-3,b-4,b-5,b-6,b-7,b-8,
a-1,a-10,a-2,a-3,a-4,a-5,a-6,a-7,a-8,a-9,b-1,b-2,b-3,b-4,b-5,b-6,b-7,b-8,b-9,
a-1,a-10,a-2,a-3,a-4,a-5,a-6,a-7,a-8,a-9,b-1,b-10,b-2,b-3,b-4,b-5,b-6,b-7,b-8,b-9,
*/
如果是TreeSet,则会抛出异常