Video: Contain Yourself: An Intro to Docker and Containers by Nicola Kabar and Mano Marks 2025
For de tråde, der udløser specifikke nedtællingshændelser som f.eks. Oversvømmelse af lanceringspuden, start af begivenhederne og løft af, kan du oprette en anden Java-klasse kaldet LaunchEvent. Denne klasse bruger en anden teknik til oprettelse og start af tråde - en der kræver nogle flere linjer kode men er mere fleksibel.
Problemet med at oprette en klasse, der udvider trådklassen, er, at en klasse kan have en superklasse. Hvad hvis du hellere vil have din trådobjekt udvide en anden klasse? I så fald kan du oprette en klasse, der implementerer Runnable-grænsefladen, i stedet for at udvide tråde-klassen.
Runnable-grænsefladen markerer et objekt, der kan køres som en tråd. Den har kun en metode, køre, der indeholder koden, der udføres i tråden. (Thread-klassen implementerer selv Runnable, hvorfor Thread-klassen har en køremetode.)
For at bruge Runnable-grænsefladen til at oprette og starte en tråd, skal du gøre følgende:
-
Opret en klasse, der implementerer Runnable.
-
Giv en løbemetode i Runnable-klassen.
-
Opret en forekomst af Thread-klassen og send dit Runnable-objekt til sin konstruktor som en parameter.
Der oprettes et trådobjekt, der kan køre din Runnable-klasse.
-
Ring til genstandsobjektets startmetode.
Køremetoden til dit Runnable-objekt kaldes og udføres i en separat tråd.
De første to af disse trin er nemme. Tricket er i tredje og fjerde trin, fordi du kan gennemføre dem på flere måder. Her er en måde, forudsat at din Runnable klasse hedder RunnableClass:
RunnableClass rc = ny RunnableClass (); Tråd t = Ny tråd (rc); t. Start();
Java-programmører synes at være så koncise som muligt, så du ofte ser denne kode komprimeret til noget mere som
Tråd t = Ny tråd (Ny RunnableClass ()); t. Start();
eller endda bare dette:
Ny tråd (ny RunnableClass ()). Start();
Denne single-line version fungerer - forudsat at du ikke behøver adgang til trådobjektet senere i programmet.