Зачем изучать java.util.concurrent, если пишешь под Android?
1 BlockingQueue музыкальный плеер, есть очередь откуда проигрываются треки, плеер снизу забирает трек, сверху пользователь накидывает в очередь новые треки. работа с очередью идет из разных потоков.
2  качалка файлов, очередь файлов для закачки, настройками могу регулировать кол-во одновременно качающих потоков
3 CountDownLatch отличный инструмент для отсчета оставшегося времени
4 CyclicBarrier чумовой механизм ожидания завершения работы нескольких потоков, парсинг сайта, 
закачка файлов, обработка текстов, подсчет данных или игр
5 Executors и ExecutorService быстрая организация пула потоков использую для работы с sqlite, 
а также ScheduledExecutorService для организации таймера для проверки изменения чего либо у пользователя на девайсе
6 полезная штука Exchanger, моментальная реализация задачи producer - consumer
7 ConcurrentHashMap вообще классика для организации хешей, это сейчас есть LRU, а раньше не было. А было WeakReference и эксперементы с очередями и хешами WeakHashMap
8 Atomic, легко позволяют создавать потоко-безопасные переменные, использовал AtomicBoolean, как межпотоковый стейт
Я знаю, что есть конторы, как крупные так и мелкие не используют Retrofitы robospicы DI фреймвори и так далее.
Учитывая проблемы с 65к dex, из-за тучи либ сторонних и особенно play services, собрать уже сложно.
И для мелкой задачи стоит ли с собой тащить либу, вопрос холиваный 
И стоит знать  java.util.concurrent потому что, это используется в либах. Тот же volley, там три чистых потока Thread для выполнения http, а в ui  пробрасывается через хендлер и Executor
например AsyncTask, он построен на FutureTask и других классах из j.u.concurrent , и его может  не хватить.