Создайте Hashtable, которая будет содержать ваши потоки и будет иметь имя потока, используемое в качестве ключа в hashmap. Поэтому всякий раз, когда вы хотите выполнить операцию в своем потоке, вы можете получить ее ссылку из хэш-таблицы и делать с ней все, что хотите.
Hashtable<String, Thread> threadTable = new Hashtable<String, Thread>();
Thread t1 = new Thread() {
public void run() {
//Do sttuff
}
}
Thread t2 = new Thread() {
public void run() {
//Do sttuff
}
}
threadTable.put("T1", t1);
threadTable.put("T2", t2);
Конечно, это вышесказанное является простым примером. Если вы возьмете класс и сделаете его продолжением Thread, вы можете добавить методы для приостановки и возобновления потока, а также для распечатки его статуса.
Я считаю, что ваш вопрос слишком широк. Возможно, если вы покажете нам какой-нибудь код, мы сможем найти несколько интересных предложений. –
Вы хотите, чтобы пользовательский интерфейс (a) запускал некоторое количество потоков в задаче; (b) предоставить вам возможность индивидуально уведомлять потоки о завершении работы с использованием пользовательского интерфейса, (c) выбрать завершенный поток и просмотреть его вывод? Это много для одного вопроса. –