fork(3) download
  1. /* package whatever; // don't place package name! */
  2.  
  3. public class Main {
  4.  
  5. private static Thread criarThread(final int numero) {
  6. return new Thread(new Runnable() {
  7. @Override
  8. public void run() {
  9. try {
  10. System.out.println("t" + numero + " começou");
  11. Thread.sleep((int) (Math.random() * 10000));
  12. System.out.println("t" + numero + " terminou");
  13. } catch (InterruptedException e) {
  14. // Ignora...
  15. }
  16. }
  17. });
  18. }
  19.  
  20. public static void main(String[] args) {
  21. Thread[] ts = {
  22. criarThread(1),
  23. criarThread(2),
  24. criarThread(3),
  25. criarThread(4),
  26. criarThread(5)
  27. };
  28. for (Thread t : ts) {
  29. t.start();
  30. }
  31. for (Thread t : ts) {
  32. try {
  33. t.join();
  34. } catch (InterruptedException e) {
  35. // Ignora...
  36. }
  37. }
  38. System.out.println("Todas as threads terminaram");
  39. }
  40. }
Success #stdin #stdout 0.1s 322176KB
stdin
Standard input is empty
stdout
t1 começou
t2 começou
t3 começou
t4 começou
t5 começou
t4 terminou
t2 terminou
t3 terminou
t1 terminou
t5 terminou
Todas as threads terminaram