Java线程池

Posted yzg-14

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java线程池相关的知识,希望对你有一定的参考价值。

技术图片

技术图片

package com.qf.demo01;

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
class Task implements Runnable{
	@Override
	public void run() {
		//要执行的代码——>任务
		for(int i=0;i<10;i++){
			System.out.println(Thread.currentThread().getName()+"	"+i);
		}
	}
}
public class Test1ThreadPool {

	public static void main(String[] args) {
		/*
		 * 使用线程池:
		 * 
		 * Executor:线程池的顶级接口
		 * 
		 * ExecutorService:线程池接口
		 * 
		 * Executors:创建线程池的一个类
		 * 		调用该类中的静态方法,就可以获取线程池
		 */
		//step1:创建一个线程池对象:里面存放一些线程
		//第1种:这种线程池中的线程的数量是固定的:由参数来指定
		//t1,t2,t3
//		ExecutorService es = Executors.newFixedThreadPool(3);
		
		//第2种:创建一个线程池对象:里面有对应的线程对象
		ExecutorService es = Executors.newCachedThreadPool();
		
		//step2:创建任务,Runnable接口的实现
		Task t1 = new Task();
		Task t2 = new Task();
		Task t3 = new Task();
		Task t4 = new Task();
		Task t5 = new Task();
		
		//step3:提交任务:将任务提交给线程池,分配线程对象执行任务对应的run()
//		es.submit(t1);//将t1这个任务提交给es线程池
//		es.submit(t2);//将t1这个任务提交给es线程池
//		es.submit(t3);//将t1这个任务提交给es线程池
//		es.submit(t4);//将t1这个任务提交给es线程池
//		es.submit(t5);//将t1这个任务提交给es线程池
		
		//了解性内容:
		ScheduledExecutorService ses = Executors.newScheduledThreadPool(1);
		/*
		 * 提交了一个要执行的任务:延迟10秒钟执行
		 */
		ses.schedule(new Runnable() {
			
			@Override
			public void run() {
				System.out.println("假装关机。。。");
				
			}
		}, 10, TimeUnit.SECONDS);
		
	}

}

  

以上是关于Java线程池的主要内容,如果未能解决你的问题,请参考以下文章

Java线程池详解

Java 线程池详解

newCacheThreadPool()newFixedThreadPool()newScheduledThreadPool()newSingleThreadExecutor()自定义线程池(代码片段

Java线程池详解

IDEA对新建java线程池的建议

java中的进程,线程,线程池总结