public class ThreadPool {
public static void main(String[] args) {
/*
* 线程池有4种
*
* 线程池一般都 会设计成单例模式
*/
// 创建了一个线程池 带缓存的线程池 - 需要多少创建多少。如果有空闲的就使用空闲的线程
ExecutorService pool = Executors.newCachedThreadPool();
//创建固定数量的线程池 (指定线程的数量)
ExecutorService pool2 = Executors.newFixedThreadPool(5);
//创建一个单一的线程池(就一个线程)
ExecutorService newSingleThreadExecutor = Executors.newSingleThreadExecutor();
//创建一个线程池,可以调度命令在一个给定的延迟后运行,或周期性地执行。
ScheduledExecutorService threadPool = Executors.newScheduledThreadPool(15);
/*
* //向线程池提一个任务 pool.submit(new Runnable() {
*
* @Override public void run() { for (int i = 0; i < 50; i++) {
* System.out.println(Thread.currentThread().getName() + " " + i); } }
* });
*
* pool.submit(new Runnable() {
*
* @Override public void run() { for (int i = 0; i < 50; i++) {
* System.out.println(Thread.currentThread().getName() + " " + i); } }
* }); //关闭线程池 pool.shutdown();
*/
pool2.submit(new Runnable() {
@Override
public void run() {
for (int i = 0; i < 50; i++) {
System.out.println(Thread.currentThread().getName() + " " + i);
}
}
});
pool2.submit(new Runnable() {
@Override
public void run() {
for (int i = 0; i < 50; i++) {
System.out.println(Thread.currentThread().getName() + " " + i);
}
}
});
pool2.shutdown();
}
}
class MyRunnable implements Runnable {
@Override
public void run() {
// TODO Auto-generated method stub
}
}
线程池
最新推荐文章于 2025-03-15 16:39:01 发布