有没有办法引用或将线程对象转换为字符串?

时间:2014-10-26 14:08:19

标签: java multithreading sockets

我目前正在玩一个echo服务器和echo客户端,这是我的讲师从根本上提供的。每个客户端连接到一个套接字线程,该线程由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
}

然而"线程[Thread-1,5,main]"不是字符串所以有没有办法可以将当前线程称为字符串,或者我如何引用它或转换它?

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

1 个答案:

答案 0 :(得分:0)

我认为您可能正在寻找Thread#getNameThread#setName

然而,正如hexafraction所指出的,如果您有对线程的引用,只需直接进行比较:

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

// ...later...

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

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