package com.day8.test;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.ThreadPoolExecutor;
/**
* User: Json
* Date: 2021/8/29
* *
* * * 创建线程的 第四种方式 -- jDK5.0新增
* * 使用线程池
* 1. 提供指定的线程数的线程池
* 2. 执行指定的线程操作,需要提供实现Runnable接口或者Callable实现类的对象
*
* 好处
* 1. 提高响应速度
* 2. 降低资源消耗
* 3. 便于线程管理
* 设置线程属性
* CorePoolSize 线程池大小
* KeepAliveTime 没有线程任务时 最多保持多久会终止
* MaximumPoolSize 最大线程数
*
* 面试题 创建多线程几种方式 ? 4种
**/
class NumberThread implements Runnable{
@Override
public void run() {
for (int i=1;i<=100;i++){
if(i%2==0){
System.out.println(Thread.currentThread().getName()+":"+i);
}
}
}
}
class NumberThread1 implements Runnable{
@Override
public void run() {
for (int i=1;i<=100;i++){
if(i%2!=0){
System.out.println(Thread.currentThread().getName()+":"+i);
}
}
}
}
public class ThreadPool {
public static void main(String[] args) {
//多态的 对象 造了10个线程池
ExecutorService executorService = Executors.newFixedThreadPool(10);
//强制转换 我也不太明白 为了设置线程属性
ThreadPoolExecutor executorService1 = (ThreadPoolExecutor) executorService;
//设置线程池的属性
// executorService1.setCorePoolSize(15);
// executorService1.setKeepAliveTime();
// executorService1.setMaximumPoolSize();
executorService.execute(new NumberThread()); //适合使用于Runable
executorService.execute(new NumberThread1());
// executorService.submit(); //适合使用于Callable
executorService.shutdown();
}
}java 线程的 创建与使用 方式四
原创
©著作权归作者所有:来自51CTO博客作者json____的原创作品,请联系作者获取转载授权,否则将追究法律责任
下一篇:idea使用@Test无法使用
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
Java创建多线程的四种方式
在进行讲解线程的创建方式之前,首先了解下什么是进程,什么是线程,进程与线程之间的关系等......
线程的创建方式 进程 线程 Java创建多线程
















