public class T05_ThreadPool {
public static void main(String[] args) throws InterruptedException {
ConcurrentLinkedQueue queue = new ConcurrentLinkedQueue<>();
for (int i = 0; i < 10000; i++) {
queue.offer(i);
}
AtomicInteger dataNum = new AtomicInteger(0);
ExecutorService service = Executors.newFixedThreadPool(8); //execute submit
int queueSize = queue.size();
for (int i = 0; i < queueSize; i++) {
service.execute(new Runnable(){
@Verride
public void run(){
try{
if(!queue.isEmpty()){
System.out.println("-------" + queue.poll() + "-------");
TimeUnit.MILLISECONDS.sleep(500);
dataNum.addAndGet(1);
}else{
service.shutdown();
System.out.println("--------------dataNum = " + dataNum);
}
}catch(Exception e){
e.printStackTrace();
service.shutdown();
}
}
});
}
System.out.println(service);
}
}