如何打印当前在特定非线程类上运行的线程的名称?

时间:2014-06-24 03:25:59

标签: java multithreading this

我在课程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.
        }
    }

1 个答案:

答案 0 :(得分:8)

当前线程的名称始终由

指定
Thread.currentThread().getName()