Даже не знаю что спросить... - Для начала что от меня вообще требовалось? - Где об этом можно почитать? - Почему приняло? - Почему вывод у меня каждый раз разный? И "вопрос на миллион" - как воспользоваться обещанной в подписке возможностью повторно решать задачи? Условие:
Не валять дурака

Восстанови логику класса TaskManipulator.

Требования:
1. Класс TaskManipulator должен реализовывать интерфейсы Runnable и CustomThreadManipulator.
2. Метод run должен каждые 100 миллисекунд выводить имя исполняемой нити в консоль.
3. Класс TaskManipulator должен иметь внутреннее поле типа Thread.
4. Метод start должен создавать, сохранять во внутреннее поле и запускать нить с именем, которое передано через аргумент метода.
5. Метод stop должен прерывать последнюю созданную классом TaskManipulator нить.
CustomThreadManipulator:
package com.javarush.task.task25.task2508;

public interface CustomThreadManipulator {
    public void start(String threadName);
    public void stop();
}
TaskManipulator:
package com.javarush.task.task25.task2508;

public class TaskManipulator implements Runnable, CustomThreadManipulator {
    private Thread currentThread;
    @Override
    public void run() {
        while(!currentThread.isInterrupted()){
            try {
                System.out.println(currentThread.getName());
                Thread.sleep(100);
            } catch(InterruptedException e){
                currentThread.interrupt();
            }
        }
    }

    @Override
    public void start(String threadName) {
        currentThread = new Thread(this, threadName);
        currentThread.start();
    }

    @Override
    public void stop() {
        currentThread.interrupt();
    }
}
Solution:
package com.javarush.task.task25.task2508;

/*
Не валять дурака
*/
public class Solution
{
    /*
     Output:
     first
     first
     second
     second
     second
     third
     fifth
     */
    public static void main(String[] args) throws InterruptedException {
        CustomThreadManipulator manipulator = new TaskManipulator();

        manipulator.start("first");
        Thread.sleep(150);
        manipulator.stop();

        manipulator.start("second");
        Thread.sleep(250);
        manipulator.stop();

        manipulator.start("third");
        Thread.sleep(50);
        manipulator.stop();

        manipulator.start("forth");
        manipulator.stop();

        manipulator.start("fifth");
        Thread.sleep(1);
        manipulator.stop();
    }
}
Вывод рандомный - от бесконечного цикла до нескольких строк, вот самое близкое к цели:
first
first
third
fifth
fifth