Java 有没有办法将线程对象引用或转换为字符串?
我目前正在使用echo服务器和echo客户端,这基本上是由我的讲师提供的。每个客户端都连接到一个套接字线程,该线程由EchoServer类中的start()启动。无论如何,我把“System.out.println(this);”这一行放在服务器类的循环中。 谢天谢地,这会给出输出“Thread[Thread-0,5,main]”、“Thread[Thread-1,5,main]”,具体取决于它是第一个线程还是第二个线程。我想说:Java 有没有办法将线程对象引用或转换为字符串?,java,multithreading,sockets,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,m
if (this == "Thread[Thread-1,5,main]"){
do so and so
}else{
do so and so
}
但是“Thread[Thread-1,5,main]”不是一个字符串,那么有没有办法将当前线程引用为字符串,或者如何引用或转换它
也很抱歉没有分享代码,我只是不确定它是否合法,因为它属于我的讲师。我想你可能正在寻找和 但是,正如Hexafrance指出的,如果您有对线程的引用,只需直接进行比较:
Thread t1 = new Thread(/*...*/);
Thread t2 = new Thread(/*...*/);
// ...later...
if (Thread.currentThread() == t1) {
// It's t1
}
返回对当前正在执行的线程的引用。与其比较字符串,不如只比较
java.lang.thread
的实例,即this
?