package com.interview.basics.java.cocurrency;
import java.util.concurrent.Executor;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
/**
* Created with IntelliJ IDEA.
* User: stefanie
* Date: 11/3/14
* Time: 11:22 AM
*/
public class MutilThreadUsingRunnable {
static class LiftOff implements Runnable{
protected int countDown = 10;
private static int taskCount = 0;
private final int id = taskCount++;
public LiftOff() {
}
public LiftOff(int countDown) {
this.countDown = countDown;
}
public String status(){
return "#" + id + "(" +
(countDown > 0? countDown : "Liftoff!") + "), ";
}
@Override
public void run() {
while(countDown-- > 0){
System.out.print(status());
//Thread.yield();
try {
TimeUnit.MILLISECONDS.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
public static void main(String[] args){
// for(int i = 0; i < 5; i++){
// new Thread(new LiftOff()).start();
// }
//ExecutorService exec = Executors.newCachedThreadPool();
ExecutorService exec = Executors.newFixedThreadPool(3);
for(int i = 0; i < 5; i++)
exec.execute(new LiftOff());
System.out.println("Waiting for Liftoff!");
exec.shutdown();
}
}