kramann.info
© Guido Kramann

Login: Passwort:










kramann.info
© Guido Kramann

Login: Passwort:




Verwendung von Threads (nebenläufigen Prozessen)

(EN google-translate)

(PL google-translate)

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

Die damit einhergehenden Vorteile und Probleme werden in Echtzeitsysteme besprochen.

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

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 0-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 0-2: Test.java