На этот вопрос уже есть ответ здесь:
Я читаю 'Operation System Concepts With Java'. Меня очень смущает концепция блокирующего и синхронного, каковы различия между ними?