Threads (Runnable interface)

Tags:    java

Hej med jer,

Er der nogen af jer som kan forklare mig brugen af TRÅDE ? Altså THREADS

Der findes 2 strategier for brug af Thread objekter for at skabe en concurrent application. Det er ved at anvende Thread klassen eller ved at implementere Runnable interfacet.
Men hvordan virker Runnable helt nøjagtigt?
Når man siger en tråd, så mener man vel en linje af kode som eksekveres - ikke sandt?





Man bruger tråde til at udføre flere opgaver på samme tid, eller som i de fleste tilfælde, til at skifte imellem dem så hurtigt, at det virker som om de udføres samtidig. Man kan bl.a. bruge tråde hvis man laver en webserver, hvor man kan komme ud for at flere personer beder om at få vist forskellige sider på det samme tidspunkt.

Når man vil starte en tråd skal man lave en klasse som implemerer interfacet Runnable, hvilket blot sikrer at klassen er af den rette type, og at du laver metoden run().

Metoden run() bliver udført som en ny tråd hver gang du opretter en tråd med din klasse, du kan næsten tænke på den som en ny main metode, hvor du bare starter en ny tråd i stedet for dit program.

Så din klasse skal altså som minimum se således ud:
Fold kodeboks ind/udJava kode 


når du så vil starte en eller flere nye tråde skal du bruge Thread-klassen:
Fold kodeboks ind/udJava kode 




Indlæg senest redigeret d. 07.06.2008 00:43 af Bruger #1739
Jeg tror ikke, jeg lige kan forklare dig brugen af Threads, men jeg kan godt fortælle, hvordan du bruger Runnable.

Alle klasser, der skal kunne bruges som Threads, skal implementere Runnable. Dette kan enten gøres direkte via implements Runnable eller indirekte ved extends Thread, da Thread implements Runnable.

Runnable er som alle interfaces bare en kontrakt/opskrift på hvilke metoder, der skal være i din klasse. Der kræves, at din klasse har metoden run, som definerer, hvad der skal ske, når klassen/tråden afvikles.

Du starter så tråden ved at kalde constructoren i Thread klassen, som tager en Runnable som parameter.

Et simpelt eksempel kunne være en tråd, som "sover" i et sekund, hvorefter den skriver, hvormange gange den har sovet.

Fold kodeboks ind/udJava kode 




Indlæg senest redigeret d. 07.06.2008 00:52 af Bruger #13106
t