Java --- 多线程 创建线程的方式四: 使用线程池
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 --- 多线程 创建线程的方式四: 使用线程池的更多相关文章
- Java之创建线程的方式四:使用线程池
import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.c ...
- Java 多线程基础(十)interrupt()和线程终止方式
Java 多线程基础(十)interrupt()和线程终止方式 一.interrupt() 介绍 interrupt() 定义在 Thread 类中,作用是中断本线程. 本线程中断自己是被允许的:其它 ...
- “全栈2019”Java多线程第二十二章:饥饿线程(Starvation)详解
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多 ...
- “全栈2019”Java多线程第十二章:后台线程setDaemon()方法详解
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多 ...
- 使用goroutine+channel和java多线程+queue队列的方式开发各有什么优缺点?
我感觉很多项目使用java或者c的多线程库+线程安全的queue数据结构基本上可以实现goroutine+channel开发能达到的需求,所以请问一下为什么说golang更适合并发服务端的开发呢?使用 ...
- 创建Java多线程的两种方式和线程异常
一.使用多线程的两种方法 使用多线程的两种方法有:继承Thread类和实现runable接口. 二.继承Thread类 来看一下thread类的源代码: class Thread implement ...
- java多线程 -- 创建线程的第三者方式 实现Callable接口
Java 5.0 在 java.util.concurrent 提供了一个新的创建执行线程的方式:Callable 接口Callable 接口类似于 Runnable,两者都是为那些其实例可能被另一个 ...
- Java多线程-----创建线程的几种方式
1.继承Thread类创建线程 定义Thread类的子类,并重写该类的run()方法,该方法的方法体就是线程需要完成的任务,run()方法也称为线程执行体 创建Thread子类的实例,也就是创建 ...
- Java 多线程创建和线程状态
一.进程和线程 多任务操作系统中,每个运行的任务是操作系统运行的独立程序. 为什么引进进程的概念? 为了使得程序能并发执行,并对并发执行的程序加以描述和控制. 因为通常的程序不能并发执行,为使程序(含 ...
- Java 多线程 - 创建线程的方法 + Executors.newXXXThreadPool()缺点
java中创建线程的三种方法以及区别: https://www.cnblogs.com/3s540/p/7172146.html 通过Executor 的工具类,创建三种类型的普通线程池: https ...
随机推荐
- ABP Vnext 微服务 常见问题
1.token问题 原因:拿token和认证token的服务器不一致 2.minio访问报错 minio错误 S3 API Request made to Console port. S3 R 解决方 ...
- IConfigurationSectionHandler 接口的用法
今天终于花了点时间了解一下IConfigurationSectionHandler 接口的用法 ,引以入门.首先建立一 RobsunConfigSectionHandler 专案,代码如下 : nam ...
- easyUI 实现查询条件中时间默认当天,第一次不参与查询,当点击查询时参与
前端查询条件: 初始加载页面时,不进行调用方法,不加载数据.前端页面代码如下: 初始化datagrid代码如下: 当点击查询时,调用后台方法进行查询数据
- 新来的一个同事,把SpringBoot参数校验玩的那叫一个优雅
介绍 在开发现代应用程序时,数据验证是确保用户输入的正确性和应用程序数据完整性的关键方面.Spring Boot 提供了强大的数据验证机制,使开发者能够轻松地执行验证操作.本文将深入介绍 Spring ...
- SqlSugar入门
SqlSugar入门 创建对象 你可以使用 SqlSugarClient (new模式)或者 SqlSugarScope (单例) 对数据库进行增.删.查.改等功能 注意:除了名字和使用模式不同,功能 ...
- PaddleNLP基于ERNIR3.0文本分类以CAIL2018-SMALL数据集罪名预测任务为例【多标签】
相关项目链接: Paddlenlp之UIE模型实战实体抽取任务[打车数据.快递单] Paddlenlp之UIE分类模型[以情感倾向分析新闻分类为例]含智能标注方案) 应用实践:分类模型大集成者[Pad ...
- C/C++ 命名空间引用知识
标准命名空间 命名空间的使用 #define _CRT_SECURE_NO_WARNINGS #include <iostream> using namespace std; // 命名空 ...
- pywin32 实现寻找窗体并模拟按键
import win32api import win32gui, win32con import win32clipboard import re import time class cWindow: ...
- 基于SpringBoot应⽤的logback⽇志配置
SpringBoot默认整合了logback-classic⽇志框架,我们需要对logback⽇志框架进⾏配置 以⾃定义⽇志输出格式.⽇志⽂件配置.⽇志⽂件保存策略等信息 <?xml versi ...
- GoodSync(最好的文件同步软件)
GoodSync是一款使用创新的最好的文件同步软件,可以在你的台式机.笔记本.USB外置驱动器等设备直接进行数据文件同步软件. GoodSync将高度稳定的可靠性和极其简单的易用性完美结合起来,可以实 ...