您的位置:首页 > 编程语言 > Java开发

【Java】ExecutorService线程池示例

2015-04-01 18:00 399 查看
package com;

import java.util.List;
import java.util.ArrayList;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.ExecutorService ;
import java.util.concurrent.Executors;

/**
*
* @author Administrator
*
*/
public class ExecutorTest extends Thread {

/**
* CPU核数
*/
static final int preceCount = Runtime.getRuntime().availableProcessors();

static ExecutorService exec = Executors.newFixedThreadPool(preceCount);

static List<Integer> list = new ArrayList<Integer>();

/**
* 集合数量
*/
static int count = 10000;

public static void main(String[] args) {
ExecutorTest test = new ExecutorTest();
test.init();
test.run();
}

/**
* 初始化List
*/
void init() {
for ( int i = 0; i < count; i++) {
list.add( i);
}
}

@Override
public void run() {
final CountDownLatch countDown = new CountDownLatch( count);
for (Integer i : list) {
final int j = i;
exec.submit( new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
try {
System. out.println( ">>" + j);
} catch (Exception e) {
// TODO: handle exception
} finally {
countDown.countDown();
}
}
});
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: