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 ...
随机推荐
- 【JS 逆向百例】网洛者反爬练习平台第三题:AAEncode 加密
关注微信公众号:K哥爬虫,持续分享爬虫进阶.JS/安卓逆向等技术干货! 声明 本文章中所有内容仅供学习交流,抓包内容.敏感网址.数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后 ...
- 自动部署(apb docker cicd gitlab)
1.安装gitlab-runner docker pull gitlab/gitlab-runner:latest 2.运行镜像 docker run -d --name gitlab-runner ...
- es从线上库导出数据并导入开发环境
背景 来了个需求,需要从某个线上es库查询一些数据出来并进行大屏展示.问需求方有没有开发环境的es库,答:没有,说要不直连他们的线上库. 后面想想也行吧,业务方都这么说了,结果开网络的流程被打回了,理 ...
- 通过Unity导出的Android Studio和Google安卓原生工程的结构图对比
使用Unity导出Android Studio工程前建议查看我之前的文章<Unity2019及Unity2020打包android的环境配置>,替换或修改Unity安装目录下的basePr ...
- Netty-介绍-1
Netty介绍和应用场景 要求 已经掌握了 主要技术构成: Java OOP 编程. Java 多线程编程. Java IO 编程 . Java 网络编程. 常用的Java 设计模式(比如 观察者模式 ...
- JQ模糊查询插件
//构造函数写法 ;(function($,window,document,undefined){//注意这里的分号必须加 //插件的全部代码 var FazzSearch = function (e ...
- CentOS7环境下MySQL的主从配置
CentOS7环境下MySQL的主从配置 一.什么叫主从复制 通过在主服务器和从服务器之间切分处理客户查询的负荷,可以得到更好的客户响应时间.通俗点说就是select查询发送到从服务器,修改数据的语句 ...
- docker之redis集群部署
docker之redis集群部署 PART01: 3主3从redis集群部署 3主3从redis集群配置 关闭防火墙,启动docker服务 如果报以下错误,应该是docker 服务没有启动,可以执行下 ...
- 2024年,我又开始用Linux桌面作为主力系统了~
前言 19年的时候我买了一个 matebook14 笔记本,配置是8代i5和8G内存,在当时看来作为轻薄本是够用的,但是现在已经2024年了,这内存让我想起来去年苹果的新款 mac mini ,丐版三 ...
- JOISC 2023 纪录
记录一下 JOISC 2023 的做题记录 Day1 T1 Two Currencies 给定一棵树,在边上有总计 \(m\) 个检查站,经过一个检查站需要叫 \(1\) 枚金币或者若干枚银币.\(Q ...