Mega Code Archive

 
Categories / Java / Threads
 

Task

import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; public class Task implements Runnable {   long n;   String id;   private long fib(long n) {     if (n == 0)       return 0L;     if (n == 1)       return 1L;     return fib(n - 1) + fib(n - 2);   }   public Task(long n, String id) {     this.n = n;     this.id = id;   }   public void run() {     Date d = new Date();     DateFormat df = new SimpleDateFormat("HH:mm:ss:SSS");     long startTime = System.currentTimeMillis();     d.setTime(startTime);     System.out.println("Starting task " + id + " at " + df.format(d));     fib(n);     long endTime = System.currentTimeMillis();     d.setTime(endTime);     System.out.println("Ending task " + id + " at " + df.format(d)         + " after " + (endTime - startTime) + " milliseconds");   }   public static void main(String[] args) {     int nThreads = Integer.parseInt(args[0]);     long n = Long.parseLong(args[1]);     Thread t[] = new Thread[nThreads];     for (int i = 0; i < t.length; i++) {       t[i] = new Thread(new Task(n, "Task " + i));       t[i].start();     }     for (int i = 0; i < t.length; i++) {       try {         t[i].join();       } catch (InterruptedException ie) {       }     }   } }