Как правильно получить имя потока в Java?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как правильно получить имя потока в Java?

Сообщение Anonymous »

У меня есть этот класс для создания потока в Java:

Код: Выделить всё

package org.vdzundza.forms;

import java.awt.Graphics;
import java.awt.Graphics2D;

public class DrawThread extends Thread {
private static final int THREAD_SLEEP = 500;
public CustomShape shape;
private Graphics g;

public DrawThread(CustomShape shape, Graphics g) {
this.shape = shape;
this.g = g;
}

@Override
public void run() {
while (true) {
try {
Thread.sleep(THREAD_SLEEP);
Graphics2D g2d = (Graphics2D) g;
g2d.setColor(this.shape.getColor());
g2d.fill(this.shape.getShape());
System.out.println(String.format("execute thread: %s %s",
Thread.currentThread().getName(), this.getName()));
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
Консоль отображает следующий текст в качестве вывода:

Код: Выделить всё

execute thread: red rectangle Thread-2
execute thread: yellow ellipse Thread-3
Мой код, создающий новый поток:

Код: Выделить всё

customShapes[0] = new CustomShape(
new Rectangle2D.Float(10, 10, 50, 50), Color.RED,
"red rectangle");
customShapes[1] = new CustomShape(new Ellipse2D.Float(70, 70, 50, 50),
Color.YELLOW, "yellow ellipse");
for (CustomShape cshape: customShapes) {
Thread t = new Thread(new DrawThread(cshape, this.getGraphics()),
cshape.getName());
threads.add(t);
t.start();
}
Мой вопрос: почему Thread.currentThread().getName() возвращает правильное имя потока, а this.getName() возвращает другое?
Мой вопрос: почему Thread.currentThread().getName() возвращает правильное имя потока, а this.getName() возвращает другое?
Мой вопрос: почему Thread.currentThread().getName() возвращает правильное имя потока, а this.getName() возвращает другое? п>

Подробнее здесь: https://stackoverflow.com/questions/141 ... me-in-java
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»