2015-05-23 1 views
1

Документация для ThreadGroup # activeCount() говорит: Возвращает оценку количества активных потоков в этой группе потоков и ее подгруппах.
Включает ли это число потоки в спящий режим, ожидание и соединение или только те потоки, которые выполняются run метод?Путаница в отношении ThreadGroup # activeCount()

Спасибо.

ответ

2

Вы можете легко попробовать это:

Thread t1 = new Thread(new Runnable() { 

    @Override 
    public void run() { 
     Scanner sc = new Scanner(System.in); 
     sc.nextInt(); 
    } 
}); 
Thread t2 = new Thread(new Runnable() { 

    @Override 
    public void run() { 
     try { 
      Thread.sleep(10000); 
     } catch (InterruptedException e) { 
      e.printStackTrace(); 
     } 
    } 
}); 
t1.start(); // this will be RUNNABLE 
t2.start(); // this will be TIMED_WAITING 
System.out.println(Thread.currentThread().getThreadGroup().activeCount()); 

Печать 3. Комментируя линии

t1.start(); 
t2.start(); 

приводит к печати 1.