1 package bytezero.thread2;
2
3 import java.security.Provider;
4 import java.util.concurrent.ExecutorService;
5 import java.util.concurrent.Executors;
6 import java.util.concurrent.ThreadPoolExecutor;
7
8 /**
9 * 创建线程的方式四: 使用线程池
10 *
11 * 好处:
12 * 1.提高响应速度(减少了创建新线程的时间)
13 * 2.减低资源消耗(重复利用线程中线程,不需要每次创建)
14 * 3.便于线程管理
15 * corePoolSize:核心池的大小
16 * maximumPoolSize:最大线程数
17 * keepAliveTime:线程没有任务时最多保持多长时间后会终止
18 *
19 *
20 * ....
21 *
22 *
23 * 创建多线程有几种方式:
24 * 4种
25 *
26 * @author Bytezero1·zhenglei! Email:420498246@qq.com
27 * create 2021-10-18 18:55
28 */
29
30 class NumberThread implements Runnable{
31
32 @Override
33 public void run() {
34 for (int i = 0; i <100 ; i++) {
35 if(i % 2 == 0){
36 System.out.println(Thread.currentThread().getName()+":"+i);
37 }
38 }
39 }
40 }
41
42 class NumberThread1 implements Runnable{
43
44 @Override
45 public void run() {
46 for (int i = 0; i <100 ; i++) {
47 if(i % 2 != 0){
48 System.out.println(Thread.currentThread().getName()+":"+i);
49 }
50 }
51 }
52 }
53 public class ThreadPool {
54 public static void main(String[] args) {
55
56 //1.提供指定线程数量的线程池
57 ExecutorService service = Executors.newFixedThreadPool(10);
58 ThreadPoolExecutor serivce1 = (ThreadPoolExecutor)service;
59 //设置线程池的属性
60 // System.out.println(service.getClass()); //获取类的构造
61 serivce1.setCorePoolSize(15);
62 // serivce1.setKeepAliveTime();
63
64
65 //2.执行指定的线程操作,需要提供实现Runnable接口或Callable接口实现类的对象
66 service.execute(new NumberThread()); //适合适用于 Runnable
67 service.execute(new NumberThread1()); //适合适用于 Runnable
68
69 // service.submit(Callable callable ); //适合适用于 Callable
70
71 //3.关闭连接池
72 service.shutdown();
73 }
74 }

Java --- 多线程 创建线程的方式四: 使用线程池的更多相关文章

  1. Java之创建线程的方式四:使用线程池

    import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.c ...

  2. Java 多线程基础(十)interrupt()和线程终止方式

    Java 多线程基础(十)interrupt()和线程终止方式 一.interrupt() 介绍 interrupt() 定义在 Thread 类中,作用是中断本线程. 本线程中断自己是被允许的:其它 ...

  3. “全栈2019”Java多线程第二十二章:饥饿线程(Starvation)详解

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多 ...

  4. “全栈2019”Java多线程第十二章:后台线程setDaemon()方法详解

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多 ...

  5. 使用goroutine+channel和java多线程+queue队列的方式开发各有什么优缺点?

    我感觉很多项目使用java或者c的多线程库+线程安全的queue数据结构基本上可以实现goroutine+channel开发能达到的需求,所以请问一下为什么说golang更适合并发服务端的开发呢?使用 ...

  6. 创建Java多线程的两种方式和线程异常

    一.使用多线程的两种方法  使用多线程的两种方法有:继承Thread类和实现runable接口. 二.继承Thread类 来看一下thread类的源代码: class Thread implement ...

  7. java多线程 -- 创建线程的第三者方式 实现Callable接口

    Java 5.0 在 java.util.concurrent 提供了一个新的创建执行线程的方式:Callable 接口Callable 接口类似于 Runnable,两者都是为那些其实例可能被另一个 ...

  8. Java多线程-----创建线程的几种方式

       1.继承Thread类创建线程 定义Thread类的子类,并重写该类的run()方法,该方法的方法体就是线程需要完成的任务,run()方法也称为线程执行体 创建Thread子类的实例,也就是创建 ...

  9. Java 多线程创建和线程状态

    一.进程和线程 多任务操作系统中,每个运行的任务是操作系统运行的独立程序. 为什么引进进程的概念? 为了使得程序能并发执行,并对并发执行的程序加以描述和控制. 因为通常的程序不能并发执行,为使程序(含 ...

  10. Java 多线程 - 创建线程的方法 + Executors.newXXXThreadPool()缺点

    java中创建线程的三种方法以及区别: https://www.cnblogs.com/3s540/p/7172146.html 通过Executor 的工具类,创建三种类型的普通线程池: https ...

随机推荐

  1. Prompt实战优化

    1.概述 在深度学习领域,Prompt(提示语)被广泛应用于自然语言处理任务中,如文本生成.机器翻译和问答系统等.Prompt的设计对模型的性能和生成结果有着重要的影响,因此在实际应用中合理而有效地利 ...

  2. Vue双向数据绑定原理-上

    Vue响应式的原理(数据改变界面就会改变)是什么? 时时监听数据变化, 一旦数据发生变化就更新界面, 这就是Vue响应式的原理. Vue是如何实现时时监听数据变化的 通过原生JS的defineProp ...

  3. 微信小程序-页面跳转navigator组件

    官方文档地址:https://developers.weixin.qq.com/miniprogram/dev/framework/app-service/route.html 在官方文档当中有提到一 ...

  4. yum 安装失败解决思路$releasever(curl#6 - "Could not resolve host: mirrorlist.centos.org; Unknown error")

    问题 公司使用刀片机的系统版本是CentOS 7.9.2009(Core),本人在重新安装虚拟机时,也使用对应的系统版本,在安装软件时,yum无法正常使用,一开始觉得,centos的release版本 ...

  5. 服务器重装ip未更改,ssh连不上(WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED)

    服务器重装ip未更改,ssh连不上 前言 原因 解决方法 服务器重装ip未更改,ssh连不上 前言 重装了虚拟机,ip还保留了,但是发现连不上了 @@@@@@@@@@@@@@@@@@@@@@@@@@@ ...

  6. Elasticsearch实战:常见错误及详细解决方案

    Elasticsearch实战:常见错误及详细解决方案 1.read_only_allow_delete":"true" 当我们在向某个索引添加一条数据的时候,可能(极少 ...

  7. Kafka的ACK机制

    Kafka的ack机制,指的是producer的消息发送确认机制,这直接影响到Kafka集群的吞吐量和消息可靠性.而吞吐量和可靠性就像硬币的两面,两者不可兼得,只能平衡. ACK有3个可选值,分别是1 ...

  8. HBase相关面试题汇总

    1.HBase是什么? (1) HBase一个分布式的基于列式存储的数据库,基于Hadoop的hdfs存储,zookeeper进行管理. (2) HBase适合存储半结构化或非结构化数据,对于数据结构 ...

  9. 好书推荐之《码出高效》、《阿里巴巴JAVA开发手册》

    好评如潮 <阿里巴巴Java开发手册> 简介 <阿里巴巴Java开发手册>的愿景是码出高效,码出质量.它结合作者的开发经验和架构历程,提炼阿里巴巴集团技术团队的集体编程经验和软 ...

  10. NC14700 追债之旅

    题目链接 题目 题目描述 小明现在要追讨一笔债务,已知有n座城市,每个城市都有编号,城市与城市之间存在道路相连(每条道路都是双向的),经过任意一条道路需要支付费用.小明一开始位于编号为1的城市,欠债人 ...