有什么方法可以引用或将线程对象转换为字符串?

问题描述:

我目前正在使用由我的讲师提供的基本的回声服务器和回声客户端。每个客户端连接到由EchoServer类中的start()启动的套接字线程。无论如何,我把行“System.out.println(this);”在服务器类的循环中。 谢天谢地,这给出了输出“Thread [Thread-0,5,main]”,“Thread [Thread-1,5,main]”,取决于它是哪个线程,分别是第一个还是第二个。我希望能够说:有什么方法可以引用或将线程对象转换为字符串?

if (this == "Thread[Thread-1,5,main]"){ 

do so and so 
}else{ 
do so and so 
} 

但是“主题[主题-1,5,主]”不是一个字符串,所以是有办法,我可以参照当前线程作为一个字符串或怎么能我参考它或转换它?

也抱歉没有分享代码我只是不确定它是否合法,因为它属于我的讲师。

+2

不是比较字符串,而是比较'this'的java.lang.Thread实例吗? – hexafraction 2014-10-26 14:09:40

我想你可能在寻找Thread#getNameThread#setName

然而,正如hexafraction指出的那样,如果你有线程的引用,只是做的比较直接:

Thread t1 = new Thread(/*...*/); 
Thread t2 = new Thread(/*...*/); 

// ...later... 

if (Thread.currentThread() == t1) { 
    // It's t1 
} 

Thread.currentThread返回当前执行的线程的引用。