自己写的一个,不知道对不对。。。。 贴在这里,当个备份吧 (Thread.sleep(1000); 可以根据自己的,调整时间,观察结果。)
import java.util.concurrent.Executor;
import java.util.concurrent.Executors;
public class TestExecutorFixedThreadPool {
private Executor executor = null;
public void init() {
executor = Executors.newFixedThreadPool(10);
}
public Executor getExecutor(){
return this.executor;
}
public static void main(String[] args) {
TestExecutorFixedThreadPool testFixedThreadPool = new TestExecutorFixedThreadPool();
testFixedThreadPool.init();
Executor executor = testFixedThreadPool.getExecutor();
for(int i = 0; i < 100; i++) {
final int index = i;
Runnable runnable = new Runnable() {
@Override
public void run() {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("runnable " + index + " using" + Thread.currentThread().getName());
}
};
executor.execute(runnable);
}
}
}
import java.util.Date;
import java.util.concurrent.Executor;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
public class TestExecutorScheduledThreadPool {
private Executor executor = null;
public void init() {
executor = Executors.newScheduledThreadPool(10);
}
public Executor getExecutor() {
return this.executor;
}
public static void main(String[] args) {
TestExecutorScheduledThreadPool testScheduledThreadPool = new TestExecutorScheduledThreadPool();
testScheduledThreadPool.init();
Executor executor = testScheduledThreadPool.getExecutor();
ScheduledExecutorService scheduler = (ScheduledExecutorService) executor;
for (int i = 0 ; i < 100; i++) {
final int index = i;
Runnable scheduleTask = new Runnable() {
@Override
public void run() {
System.out.println("runnable " + index + " using " + Thread.currentThread().getName() + " Date: " + new Date());
}
};
scheduler.scheduleAtFixedRate(scheduleTask, 1, 20, TimeUnit.SECONDS);
}
}
}