Video: Contain Yourself: An Intro to Docker and Containers by Nicola Kabar and Mano Marks 2024
För de trådar som utlöser specifika nedräkningshändelser som översvämning av startfältet, starta händelserna och lyfta av, kan du skapa en annan Java-klass som heter LaunchEvent. Den här klassen använder en annan teknik för att skapa och starta trådar - en som kräver några fler rader kod men är mer flexibel.
Problemet med att skapa en klass som utökar trådklassen är att en klass kan ha en superklass. Vad händer om du hellre vill ha ditt trådobjekt förlänga någon annan klass? I det fallet kan du skapa en klass som implementerar Runnable-gränssnittet istället för att utöka klassen Tråd.
Runnable-gränssnittet markerar ett objekt som kan köras som en tråd. Det har bara en metod, kör, som innehåller koden som körs i tråden. (Thread-klassen själv implementerar Runnable, varför Thread-klassen har en körmetod.)
För att använda Runnable-gränssnittet för att skapa och starta en tråd måste du göra följande:
-
Skapa en klass som implementerar Runnable.
-
Ge en körmetod i klassen Runnable.
-
Skapa en instans av Thread-klassen och skicka ditt Runnable-objekt till dess konstruktor som en parameter.
Ett trådobjekt skapas som kan köra din Runnable-klass.
-
Ring till ämnesens startmetod.
Körningsmetoden för ditt Runnable-objekt kallas och exekveras i en separat tråd.
De två första stegen är enkla. Tricket är i det tredje och fjärde steget, för att du kan slutföra dem på flera sätt. Här är ett sätt, förutsatt att din Runnable-klass heter RunnableClass:
RunnableClass rc = nytt RunnableClass (); Tråd t = Ny tråd (rc); t. Start();
Java-programmerare tycker om att vara så koncisa som möjligt, så du ser ofta denna kod komprimerad till något mer som
Tråd t = Ny tråd (Ny RunnableClass ()); t. Start();
eller till och med just detta:
Ny tråd (ny RunnableClass ()). Start();
Denna enkelradiga version fungerar - förutsatt att du inte behöver komma åt trådobjektet senare i programmet.