- Чем процесс отличается от потока?
- Чем Thread отличается от Runnable? Когда нужно использовать Thread, а когда Runnable?
- Что такое монитор? Как монитор реализован в java?
- Что такое синхронизация? Какие способы синхронизации существуют в java?
- Как работают методы wait(), notify() и notifyAll()?
- В каких состояниях может находиться поток?
- Что такое семафор? Как он реализован в Java?
- Что означает ключевое слово volatile? Почему операции над volatile переменными не атомарны?
- Для чего нужны Atomic типы данных? Чем отличаются от volatile?
- Что такое потоки демоны? Для чего они нужны? Как создать поток-демон?
- Что такое приоритет потока? На что он влияет? Какой приоритет у потоков по умолчанию?
- Как работает Thread.join()? Для чего он нужен?
- Чем отличаются методы wait() и sleep(), yield()?
- Можно ли вызвать start() для одного потока дважды?
- Как правильно остановить поток? Для чего нужны методы .stop(), .interrupt(), .interrupted(), .isInterrupted()?
- Чем Runnable отличается от Callable?
- Что такое FutureTask?
- Что такое deadlock?
- Что такое livelock?
- Что такое race condition?