start() запускает метод потока
Когда run() вызывает метод start(), на самом деле выполняется тело метода.
Sleep() переводит текущий поток в спящий режим, автоматически просыпается по истечении срока сна и переходит в рабочее состояние вместо рабочего состояния.
Give() приостанавливает выполнение текущего объекта потока. Планировщик потоков JVM вызывает другие потоки с высоким приоритетом на основе механизма приоритета. Диапазон значений приоритета: 1 (Thread.MIN_PRIORITY) — 10 (Thread.MAX_PRIORITY). Номер по умолчанию. созданных потоков — 5 (NORM_PRIORITY)
setPriority(int newPriority) устанавливает новый приоритет потока
join() ожидает завершения потока, прежде чем начать выполнение текущего потока; например, поток A вызывает метод join() потока B и ждет завершения потока B, прежде чем продолжить выполнение потока A. Поток B завершается и поток A переходит в работоспособное состояние.