import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
public class ExecutorServiceTest {
public static void main(String[] args) {
ExecutorService exe =null;
exe = Executors.newFixedThreadPool(5);
//创建固定数目线程的线程池。
// exe = Executors.newSingleThreadExecutor();
//创建一个单线程化的Executor
//exe = Executors.newCachedThreadPool();
//创建一个可缓存的线程池,调用execute将重用以前构造的线程(如果线程可用)。如果现有线程没有可用的,则创建一个新线 程并添加到池中。终止并从缓存中移除那些已有 60 秒钟未被使用的线程。
//exe = Executors.newScheduledThreadPool(1);
//创建一个支持定时及周期性的任务执行的线程池,多数情况下可用来替代Timer类
System.out.println("-=====================" + System.currentTimeMillis());
exe.submit(()->{
try {
Thread.sleep(1000);
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("-=====================" + System.currentTimeMillis());
});
System.out.println("-=====================" + System.currentTimeMillis());
exe.shutdown();
ScheduledExecutorService sexe = Executors.newScheduledThreadPool(1);
sexe.scheduleAtFixedRate(()->{
System.out.println("-==sexe===================" + System.currentTimeMillis());
}, 0, 2, TimeUnit.SECONDS);
BlockingQueue<Runnable> bqueue = new ArrayBlockingQueue<Runnable>(20);
//创建线程池,池中保存的线程数为3,允许的最大线程数为5
ThreadPoolExecutor pool = new ThreadPoolExecutor(3,5,50,TimeUnit.MILLISECONDS,bqueue);
}
}
捐助开发者
在兴趣的驱动下,写一个免费
的东西,有欣喜,也还有汗水,希望你喜欢我的作品,同时也能支持一下。 当然,有钱捧个钱场(支持支付宝和微信 以及扣扣群),没钱捧个人场,谢谢各位。
个人主页:http://knight-black-bob.iteye.com/
谢谢您的赞助,我会做的更好!