package p28_watki.a_postawy;

public class AAA_PierwszeWatki {

    public static void main(String[] args) {
        System.out.println("Początek main");

        Runnable trescWatkuA = new Runnable() {
            public void run() {
                System.out.println("AAA początek");
                for (int i = 0; i < 1000; i++) {
                    System.out.println("AAA " + i);
                }
                System.out.println("AAA koniec");
            }
        };

        Thread watekA = new Thread(trescWatkuA);
        // Od Javy 8 obiekty Runnable, czyli treść wątku, można podawać w formie wyrażeń lambda

        Thread watekB = new Thread(() -> {
            System.out.println("BBB początek");
            for (int i = 0; i < 1000; i++) {
                System.out.println("BBB " + i);
            }
            System.out.println("BBB koniec");
        });

        Thread watekC = new Thread(() -> {
            System.out.println("CCC początek");
            for (int i = 0; i < 1000; i++) {
                System.out.println("CCC " + i);
            }
            System.out.println("CCC koniec");
        });

        System.out.println("Wątki przygotowane, teraz je uruchamiam....");

        // Aby wątki uruchomić, wywołuje się start
        watekA.start();
        watekB.start();
        watekC.start();

        System.out.println("Koniec main");
    }
}
