如何在这段代码中获得java线程的名称?
我尝试在run方法中使用getName()和Thread.getName(),但它们不起作用。有什么建议吗 我需要获取线程所属的变量名。 我是一个初学者程序员,所以任何指导都是感激的。如果有必要,我会解释得更多 这就是我要说的,我只是添加了更多的词来摆脱恼人的“大部分是代码”限制如何在这段代码中获得java线程的名称?,java,multithreading,Java,Multithreading,我尝试在run方法中使用getName()和Thread.getName(),但它们不起作用。有什么建议吗 我需要获取线程所属的变量名。 我是一个初学者程序员,所以任何指导都是感激的。如果有必要,我会解释得更多 这就是我要说的,我只是添加了更多的词来摆脱恼人的“大部分是代码”限制 import java.awt.*; import java.awt.event.*; import javax.swing.*; public class ThreadEx extends JFrame { JB
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class ThreadEx extends JFrame
{
JButton btnStart = new JButton("A button");
public ThreadEx()
{
this.setTitle("Threads");
this.setSize(300, 200);
this.setLayout(new GridLayout(0, 1));
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
JProgressBar progressBar1 = new JProgressBar();
JProgressBar progressBar2 = new JProgressBar();
JLabel label1 = new JLabel("Progress 1: ");
JLabel label2 = new JLabel("Progress 2: ");
InnerProgress innerProgress1 = new InnerProgress(label1, progressBar1);
InnerProgress innerProgress2 = new InnerProgress(label2, progressBar2);
Thread t1 = new Thread(innerProgress1);
Thread t2 = new Thread(innerProgress2);
t1.start();
t2.start();
btnStart.addActionListener(clickListener);
this.add(btnStart);
this.add(innerProgress1);
this.add(innerProgress2);
this.pack();
}
public class InnerProgress extends JPanel implements Runnable
{
JLabel label;
JProgressBar progress;
InnerProgress(JLabel _label, JProgressBar _progress)
{
label = _label;
progress = _progress;
this.add(label);
this.add(progress);
}
public void run()
{
System.out.println("Running: "); //<===== This is where I want to add thread name
}
}
import java.awt.*;
导入java.awt.event.*;
导入javax.swing.*;
公共类ThreadEx扩展了JFrame
{
JButton btnStart=新的JButton(“按钮”);
公共ThreadEx()
{
本文件的标题为“线程”;
这个.设置大小(300200);
这个.setLayout(新的GridLayout(0,1));
此.setLocationRelativeTo(空);
此.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
此.setVisible(true);
JProgressBar progressBar1=新的JProgressBar();
JProgressBar progressBar2=新的JProgressBar();
JLabel label1=新的JLabel(“进度1”);
JLabel label2=新的JLabel(“进度2”);
innerProgress1=新的innerProgress1(label1,progressBar1);
innerProgress2=新的innerProgress2(label2,progressBar2);
螺纹t1=新螺纹(1);
螺纹t2=新螺纹(2);
t1.start();
t2.start();
btnStart.addActionListener(单击Listener);
添加(btnStart);
添加(1);
添加(2);
这个包();
}
公共类InnerProgress扩展JPanel实现Runnable
{
JLabel标签;
JProgressBar进程;
InnerProgress(JLabel\u标签,JProgressBar\u进度)
{
标签=_标签;
进度=_进度;
添加(标签);
添加(进度);
}
公开募捐
{
System.out.println(“Running:”;//在获取其名称之前,您可以设置其名称
请参见下面的用法,返回当前线程的名称
System.out.println("Running: " + Thread.currentThread().getName());
Thread.currentThread()
提供执行线程的当前引用
for(int i=0; i<100; i++){
progress.setValue(i);
progress.setString(Thread.currentThread().getName()+" - "+i+"%");
try {
Thread.sleep(500);
} catch (InterruptedException ignore) { }
}
for(int i=0;iGet当前线程
并使用getName()
打印其名称。