Threads i Java sköter prioriteringsordningen för hur ett program ska exekvera koden
De flesta program exekveras med enbart en thread (“tråd”) som sköter prioriteringsordningen för hur programmet ska exekveras. Men vad händer om det finns flera operationer som behöver exekveras exakt samtidigt? Genom att skapa flera trådar som körs parallellt, kan man möjliggöra detta. Detta kan vara användbart i större program, exempelvis i ett multiplayer-spel som behöver hantera flera input samtidigt.
En Thread i Java kan skapas på två olika sätt,
Vi kommer självklart kolla på hur vi gör för båda. Men först, det finns en skillnad mellan dom som är bra att känna till,
I vårt enklare spel kommer vi enbart behöva en tråd. Vi har valt att använda Runnable interface i vårt spel och är det vi normalt brukar använda när vi jobbar med Threads.
Vi skulle kunna se det som att Threads möjliggör multitasking. Vi använder trådar i Java för att göra programmet snabbare genom att vi kan göra flera saker samtidigt. Vidare, ytterligare användningsområden skulle kunna vara när vi vill behandla flera användare samtidigt. Till exempel ett program som ska ta hand om kunder på en webbsida. När man handlar online vill man inte behöva vänta i en lång kö på att andra ska bli färdig innan man får slutföra sin beställning.
Avslutningsvis, genom att vi möjliggör multitasking så kan vi snabbare svara på den information en användare ger till programmet. Till exempel, om vi har ett GUI som ska rita ut något baserat på vad användaren gör. Om det sker sekventiellt och programmet måste vänta hela tidens till användaren är helt klart, och sen måste användaren vänta till GUI är helt klar med operationen. Använder vi trådar i Java så kan vi utföra det parallellt och utföra var och en av dom uppgifterna löpande bredvid varandra.
Vi skapar en tråd genom att ärva Thred klassen där metoden run() är definierad.
Syntaxen för att skapa en tråd genom att ärva klassen är,
import java.lang.*; // Ärver Thread public class Counter extends Thread { // Skapar en ny tråd Thread T; // Ordningen i hur programmet ska exekveras public void run() { .... } }
På liknande sätt kan vi skapa en tråd genom att implementera Runnable där metoden run() också är definierad.
Syntaxen för att skapa en tråd med Runnable är,
import java.lang.*; //Implementerar Runnable public class Counter implements Runnable { // Skapar en ny tråd Thread T; // Ordningen i hur programmet ska exekveras public void run() { .... } }
Det finns ett par olika tillstånd en tråd kan ha,
Bilden nedan visar exempel på hur vi kan använda några av de olika metoder tillgängliga till att skapa en tråd. Notera hur vi har olika tillstånd, så kallade States, och kan med hjälp av metoderna anpassa tillståndet för vår tråd.
För en komplett lista på metoder till Runnable interfacet se Oracle hemsida
Vad tyckte du om sidan?
Lämna gärna feedback och hjälp oss göra sidan bättre
Feedback gör oss bättre!
Lämna gärna feedback om vad du tyckte om avsnittet!