How would you design a robust concurrency solution that avoids deadlocks and synchronization issues in Java?