我在课程Thread
或类Thread
的课程中找到了如何打印出特定主题名称的答案。
即。 this.getName();
然而,当我在班级QueueManager<T>
时,这对我来说并不适合。例如,在我的方法removeFromQueue()
中,我想打印出从队列中拉出的线程。但是当我使用this
时,它引用的是类QueueManager<T>
,而不是当前的线程。
如何引用此类中的当前线程?
public T removeFromQueue(){
synchronized (this) {
T item = null;
if (!isEmpty()){
item = queue.removeLast();
if (WebServer.DEBUG) System.out.println(item + " removed from " + item.getClass() + "Queue" + "\nby " + this.);
//If queue was full until right now, notify waiting socket threads that they can add something
if (getSize() == (maxQueueSize - 1)){
notifyAll();
}
}
return item; //If queue is empty, null is returned.
}
}
答案 0 :(得分:8)
当前线程的名称始终由
指定Thread.currentThread().getName()