2013-11-24 1 views
0

Привет, я хочу посмотреть, какой поток работает с моим текущим классом. Причиной этого является то, что я хочу посмотреть, существуют ли разные потоки, идущие бок о бок на основе кода exectuing.Получить поток java, управляющий текущим классом

Например:

Public Class one { 
    public void Method1 { 
     Do something 
     print out what thread is running here 
    } 
    public void Method2 { 
     doing something 
    } 
} 

Class two { 
    public void Method1 { 
     Do something 
     print out what thread is running here 
    } 
    public void Method2 { 
     doing something 
    } 
} 

Я был бы признателен, если что-то было возможно.

ответ

1

Чтобы получить доступ к текущей нити в текущем классе, класс резьбы имеет статический метод currentThread()

Thread.currentThread() 

Это может указывать вам куда-нибудь дать ответы, что поток обработки чего.

+0

Различные методы класса могут выполняться в разных потоках, обычно нет определенного потока, связанного с классом. – Basilevs

+0

Спасибо за расширение ответа! Помогает! – vonGohren

1

С точки зрения резьбы, класс 1 и 2-й класс одинаковы, если части «Сделай что-то» одинаковые.

В Java поток - это работающий объект, а класс - это процедура, в которой следует поток. Вы не можете написать класс, который может запускаться только одним потоком. Любые потоки могут запускать любые классы.

Представьте себе Java-класс, как партитура и темы в качестве пианиста. Партию фортепиано можно сыграть несколькими пианистами одновременно или в разное время.

Учитывая приведенные выше пример, если «сделай что-нибудь» части такой же, вам не нужно писать два разных класс, только один класс будет делать работу:

Public Class ThreadTester { 
    public void Method1 { 
     System.out.println(Thread.currentThread().getName()); 
    } 
    public void Method2 { 
     doing something 
    } 
} 

Надеется, что это полезно.

+0

Спасибо за понимание, но это было просто вопрос очень обзорный, и да, они должны делать разные вещи. – vonGohren

+0

Если части «Do Something» различны, просто используйте Thread.currentThread(). GetName(), чтобы узнать, какой поток вызывает его. – KKKCoder

Смежные вопросы