Den moderne arbejdsplads er i stigende grad afhængig af mødelokaler til at fremme samarbejde, men dette skift medfører også stigende sikkerhedsudfordringer.
En tråd ekskverer for længden af dens run() metode.
Når run() metoden stopper, stopper tråden, hvis run() metoden fortsætter, fortsætter tråden.
Et eksempel på en run:
public void run() { while(isRunning) { // Some boolean value denotifying that we should continue to run doTask(); // tedious task try { Thread.sleep(10): // if necessary } catch (InterruptedException e) {} } }
Når man ikke gider mere, sættes isRunning til false, og run() metoden vil så afslutte
Der er intet i while løkken, der gør den til en tråd, men du spurgte heller ikke om hvordan man lavede en tråd.
En tråd eksekverer klassens (eller dens targets) run() metode, og når den er færdig stoppes udførslen.
Hvis du gerne vil have en tråd, hvor den kører enten i to minutter, eller indtil den bliver afbrudt, kan logikken se sådan ud (bemærk, jeg skriver kun run() metoden, ikke hele klassen og ikke alt trådspecifikt.):
public void run() { long now = System.currentTimeMillis(); long slutTime = 2 * 60 * 1000 + now;
while((slutTime > now) && isRunning)) { doTask();
now = System.currentTimeMillis(); } }
I udførslen måler vi på tiden med jævne mellemrum, og hvis den er mere end to minutter senere end vi startede, terminerer vi. Bemærk, den kører minimum 2 minutter.
Hvis det er et ufravigeligt krav, at den max må køre 2 minutter, skal du lave det anderledes, nemlig starte en tråd, vente 2 minutter, og derefter afbryde den. Men hvis du samtidig vil arbejde, skal du have en tråd til at starte den tråd.
public void run() { Thread t = new Thread(someTarget); t.start(); try { Thread.sleep(2*60*1000); } catch (InterruptedException e) {} t.stop(); // Deprecated, but functioning. }
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.