Создание потока путем реализации интерфейса Runnable. Диспетчеризация, имена, приоритеты и определение работающих потоков. Взаимная их блокировка и корректное завершение. Применение методов wait(), notify(), notifyAll(). Завершение потока с interrupt().