import com.atlassian.util.concurrent.Locks;
private final Lock lock = Locks.lock("myLock");
public void doSomething() {
lock.lock();
try {
} finally {
lock.unlock();
}
}
import com.atlassian.util.concurrent.ConcurrentHashSet;
private final Set<String> mySet = new ConcurrentHashSet<>();
public void addToSet(String value) {
mySet.add(value);
}
public boolean containsValue(String value) {
return mySet.contains(value);
}
public void removeFromSet(String value) {
mySet.remove(value);
}
import com.atlassian.util.concurrent.ThreadFactories;
import com.atlassian.util.concurrent.ThreadPoolBuilder;
private final ExecutorService threadPool = ThreadPoolBuilder
.newBuilder()
.setNameFormat("my-pool-%d")
.setThreadFactory(ThreadFactories.namedThreadFactory())
.setMinThreads(2)
.setMaxThreads(10)
.setUnboundedQueue()
.build();
public void submitTask(Runnable task) {
threadPool.submit(task);
}
public void shutdownThreadPool() {
threadPool.shutdown();
}