Skip to content

Instantly share code, notes, and snippets.

@Viacheslav77
Created February 1, 2016 17:06
Show Gist options
  • Save Viacheslav77/a131c51df2d1f29c27dc to your computer and use it in GitHub Desktop.
Save Viacheslav77/a131c51df2d1f29c27dc to your computer and use it in GitHub Desktop.
1. Создать 100 потоков, каждый их которых выведет на экран свой номер и дождется, пока его прервут. 2. Создать поток, который создаст 50 потоков, каждый их которых выведет на экран свой номер и дождется, пока его прервут. Прерывание дочерних потоков должно выполнятся из потока их порождающего.
package Threads;
import java.util.ArrayList;
public class AlotOfThread extends Thread {
public void run () {
System.out.println("\n2. Создать поток, который создаст 50 потоков, каждый их которых выведет на экран свой номер и дождется,\n"
+ " пока его прервут. Прерывание дочерних потоков должно выполнятся из потока их порождающего.\n");
ArrayList<threadOne> list = new ArrayList<threadOne> ();
for (int i = 0; i<50; i++){
threadOne to = new threadOne ();
to.start();
list.add(to);
}
System.out.println("\nЖдём 10с. и закрываем все потоки\n");
for(threadOne o: list)
o.interrupt();
}
}
package Threads;
import java.util.ArrayList;
/*
1. Создать 100 потоков, каждый их которых выведет на экран свой номер и дождется, пока его прервут.
2. Создать поток, который создаст 50 потоков, каждый их которых выведет на экран свой номер и дождется,
пока его прервут. Прерывание дочерних потоков должно выполнятся из потока их
порождающего.
*/
public class MyClass {
public static void main (String[] args){
System.out.println("\n2. 1. Создать 100 потоков, каждый их которых выведет на экран свой номер и дождется, пока его прервут.\n");
ArrayList <threadOne> threadsList = new ArrayList <threadOne>();
for (int i = 0; i<100 ; i++){
threadOne to = new threadOne();
to.start();
threadsList.add(to);
try {
Thread.sleep(5);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
//e.printStackTrace();
}
}
System.out.println("\nЖдём 10с. и закрываем все потоки\n");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
//e.printStackTrace();
}
for(threadOne o: threadsList)
o.interrupt();
AlotOfThread aft = new AlotOfThread();
aft.start();
}
}
package Threads;
public class threadOne extends Thread {
public void run () {
int i = 0;
System.out.println( getId() + ": Wait!" );
while (!isInterrupted()) {
i++;
}
System.out.println( getId() + ": Close! i = " + i);
return;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment