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.
- public class Counter implements Runnable
- {
-
- private String name;
-
- public Counter(String name)
- {
- this.name = name;
- }
-
-
- public void run()
- {
- boolean keepRunning = true;
- int count = 0;
-
- while(keepRunning)
- {
- try
- {
- Thread.sleep(2000);
- }
- catch (InterruptedException e) { }
-
- System.out.println("Thread "+name+" has slept "+(++count)+" times");
- if (count >= 10)
- keepRunning = false;
- }
-
- }
-
- public static void main(String [] args)
- {
- Runnable a = new Counter("First");
- Runnable b = new Counter("Second");
-
- Thread ta = new Thread(a);
- Thread tb = new Thread(b);
-
- ta.start();
- tb.start();
- }
- }
Indlæg senest redigeret d. 07.06.2008 00:52 af Bruger #13106