16. januar 2011 - 16:01Der er
7 kommentarer og 1 løsning
thread pool
Jeg sidder og laver en opgave hvor jeg skal bruge flere tråde. Jeg skal bruge thread pool, men kan ikke rigtig finde ud af helt præcis hvad det er og hvordan jeg bruger/laver det. Opgaven lyder "run the threads using a thread pool"
indtil videre ser min kode således ud (2 klasser):
public class Printer implements Runnable { private final String message; private int howManyTimes;
public Printer(final String message, int howManyTimes) { this.message = message; this.howManyTimes = howManyTimes; }
public void run() { for (int i = 0; i < howManyTimes; i++){ System.out.println(i + ":" + message); } } }
public static void main(final String[] args) {
final Runnable printer1 = new Printer("Hi there from number 1", 20); final Thread thread = new Thread(printer1);
final Runnable printer2 = new Printer("number 2", 15); final Thread thread2 = new Thread(printer2); thread.start(); thread2.start(); }
Sidste spørgsmål er hvad er forskellen mellem "cached thread pool" og "fixed thread pool"? På forhånd mange tak
Jeg har læst din guide, men er ikke sikker på at det er det der menes med den opgave jeg har fået.
Jeg er godt klar over at jeg ikke bruger det. Det er hele pointen hvordan?
Mit problem er jeg jeg har ikke fattet en bjælde...
jeg har løsningen på opgaven og den ser således ud:
public class MainPool {
public static void main(final String[] args) { final Printer printer1 = new Printer(10, "Hi there from number 1", 100); final Thread thread = new Thread(printer1); thread.setPriority(Thread.MIN_PRIORITY);
final Printer printer2 = new Printer(10, "number 2", 100); final Thread thread2 = new Thread(printer2); thread2.setPriority(Thread.MAX_PRIORITY);
thread.start(); thread2.start(); } }
public class Printer implements Runnable {
private final int howMany; private final String message; private final int sleepTime;
public Printer(final int howMany, final String message, final int sleepTime) { this.howMany = howMany; this.message = message; this.sleepTime = sleepTime; }
public void run() { for (int i = 0; i < howMany; i++) { System.out.println(i + ":" + message); } } }
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.