kramann.info
© Guido Kramann

Login: Passwort:










4 Verwendung von Threads (nebenläufigen Prozessen)

4 Use of threads (concurrent processes) (EN google-translate)

4 Wykorzystanie wątków (procesy współbieżne) (PL google-translate)

Aufwändige Berechnungen sollten nicht im Hauptprozess ausgeführt werden, sondern in nebenläufigen Prozessen.

Complex calculations should not be performed in the main process, but in concurrent processes.

Złożone obliczenia nie powinny być wykonywane w głównym procesie, ale w procesy współbieżne.

Die damit einhergehenden Vorteile und Probleme werden in Echtzeitsysteme besprochen.

The associated benefits and problems are discussed in real-time systems.

Związane z tym korzyści i problemy omawiane są w systemach czasu rzeczywistego.

Es folgt ein Standard-Programmbeispiel, wie einer Klasse eine Thread-Methode (run) hinzugefügt werden kann und wie dessen Aktivität gesteuert werden kann:

Here is a standard sample program example of how to thread a thread method (run) to a class can be added and how its activity can be controlled:

Oto standardowy przykładowy program przykładowy do wątku metody (przebiegu) wątku do klasy można dodać i jak można kontrolować jego działanie:

public class Run implements Runnable
{
    public boolean aktiv;
    public String name;
 
    public Run(String name)
    {
        this.name = name;
        aktiv = false;
    }

    public void run()
    {
        while(true)
        {
            if(aktiv)    
            {
                System.out.print(name);

                try
                {
                    Thread.sleep(10);
                }
                catch(Exception e)
                {
                }

            }
            else
            {
                try
                {
                    Thread.sleep(1000);
                }
                catch(Exception e)
                {
                }
            }
        }
    }
}

Code 4-1: Run.java

public class Test
{
    public static void pause()
    {
                try
                {
                    Thread.sleep(15000);
                }
                catch(Exception e)
                {
                }
    }

    public static void main(String[] args)
    {
        Run r1 = new Run("A");
        Run r2 = new Run("B");
        Run r3 = new Run("C");

        Thread t1 = new Thread(r1);
        Thread t2 = new Thread(r2);
        Thread t3 = new Thread(r3);

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

        System.out.println("**** AKTIVIERE A ****");
        r1.aktiv = true;
        pause();
     
        System.out.println("**** AKTIVIERE B ****");
        r2.aktiv = true;
        pause();
     
        System.out.println("**** AKTIVIERE C ****");
        r3.aktiv = true;
        pause();

        System.exit(0);     
    }
}

Code 4-2: Test.java