有什么方法可以引用或将线程对象转换为字符串?
问题描述:
我目前正在使用由我的讲师提供的基本的回声服务器和回声客户端。每个客户端连接到由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,主]”不是一个字符串,所以是有办法,我可以参照当前线程作为一个字符串或怎么能我参考它或转换它?
也抱歉没有分享代码我只是不确定它是否合法,因为它属于我的讲师。
答
我想你可能在寻找Thread#getName
和Thread#setName
。
然而,正如hexafraction指出的那样,如果你有线程的引用,只是做的比较直接:
Thread t1 = new Thread(/*...*/);
Thread t2 = new Thread(/*...*/);
// ...later...
if (Thread.currentThread() == t1) {
// It's t1
}
Thread.currentThread
返回当前执行的线程的引用。
不是比较字符串,而是比较'this'的java.lang.Thread实例吗? – hexafraction 2014-10-26 14:09:40