public class Solution {
static int count = 15;
static volatile int createdThreadCount;
public static void main(String[] args) {
System.out.println(new GenerateThread());
}
public static class GenerateThread extends Thread{
public GenerateThread(){
super(++createdThreadCount + "");
start();
}
@Override
public void run() {
if (createdThreadCount < count){
System.out.println(new GenerateThread());
}
}
@Override
public String toString() {
return currentThread().getName() + " created";
}
}
}
я немного плыву - как задать вопрос..
т.е. если я в toString() пишу currentThread().getName() - то туда каким то образом попадает поток main
видимо потому что он в начале программы создает первый поток.. ? сложна
при этом что интересно: он не заменяет собою в выводе
1 created или какой то другой номерной поток
выводится:
1 created
2 created
main created
3 created
4 created
5 created
6 created
7 created
8 created
9 created
10 created
11 created
12 created
13 created
14 created
в вывод в таком случае не попадает 15 created
и здесь мне тоже не совсем понятно.. как так получается.. счетчик ведь считает как и должен, но до 15 не доходит