<dependencies>
<dependency>
<groupId>com.atlassian.util.concurrent</groupId>
<artifactId>atlassian-util-concurrent</artifactId>
<version>2.4.1</version>
</dependency>
</dependencies>
import com.atlassian.util.concurrent.ThreadFactories;
import com.google.common.collect.Lists;
import java.util.List;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class ConcurrentTaskExecutor {
public static void main(String[] args) {
ExecutorService executor = Executors.newCachedThreadPool(ThreadFactories.namedThreadFactory("ConcurrentTask"));
List<Runnable> tasks = Lists.newArrayList(
() -> {
},
() -> {
},
() -> {
}
);
tasks.forEach(executor::execute);
executor.shutdown();
}
}
import com.atlassian.util.concurrent.ConcurrentHashSet;
import java.util.Set;
public class ConcurrentDataSharing {
public static void main(String[] args) {
Set<String> sharedSet = new ConcurrentHashSet<>();
Thread thread1 = new Thread(() -> {
sharedSet.add("Data 1");
});
Thread thread2 = new Thread(() -> {
sharedSet.add("Data 2");
});
thread1.start();
thread2.start();
try {
thread1.join();
thread2.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
sharedSet.forEach(System.out::println);
}
}