Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 有没有办法将线程对象引用或转换为字符串?_Java_Multithreading_Sockets - Fatal编程技术网

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

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

我目前正在使用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[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