随笔分类 -  线程池

摘要:JDK 在线程的 Stop 方法时明确不得强行销毁一个线程,要优雅的退出线程。 何谓优雅退出线程,即业务将进行中请求正确被处理,取消待执行请求,执行资源回收,最终 Thread Runable run 方法 return 结束执行。 首先问为什么要退出一个线程,再提问如何退出一个线程 1需要线程退出 阅读全文
posted @ 2023-11-16 17:28 zydbky 阅读(63) 评论(0) 推荐(0)
摘要:线程池的优势 线程池的使用 线程池的工作原理 线程池的参数 任务队列(workQueue) 线程工厂(threadFactory) 拒绝策略(handler) 功能线程池 定长线程池(FixedThreadPool) 定时线程池(ScheduledThreadPool ) 可缓存线程池(Cached 阅读全文
posted @ 2022-08-12 09:21 zydbky 阅读(54) 评论(0) 推荐(0)
摘要:由于现在大多计算机都是多核CPU,多线程往往会比单线程更快,更能够提高并发,但提高并发并不意味着启动更多的线程来执行。更多的线程意味着线程创建销毁开销加大、上下文非常频繁,你的程序反而不能支持更高的TPS。 时间片 多任务系统往往需要同时执行多道作业。作业数往往大于机器的CPU数,然而一颗CPU同时 阅读全文
posted @ 2022-07-27 10:23 zydbky 阅读(590) 评论(0) 推荐(0)
摘要:前言 当多线程访问共享且可变的数据时,涉及到线程间同步的问题,并不是所有时候,都要用到共享数据,所以就需要ThreadLocal出场了。 ThreadLocal又称线程本地变量,使用其能够将数据封闭在各自的线程中,每一个ThreadLocal能够存放一个线程级别的变量且它本身能够被多个线程共享使用, 阅读全文
posted @ 2022-05-19 17:50 zydbky 阅读(417) 评论(0) 推荐(0)
摘要:随着cpu核数越来越多,不可避免的利用多线程技术以充分利用其计算能力。所以,多线程技术是服务端开发人员必须掌握的技术。 线程的创建和销毁,都涉及到系统调用,比较消耗系统资源,所以就引入了线程池技术,避免频繁的线程创建和销毁。 在Java中有一个Executors工具类,可以为我们创建一个线程池,其本 阅读全文
posted @ 2022-04-15 10:27 zydbky 阅读(77) 评论(0) 推荐(0)
摘要:什么是守护线程,什么是非守护线程? java有两种状态的线程 守护线程与非守护线程的区别 守护线程与非守护线程代码演示区别 创建守护线程 守护线程:主线程销毁停止,守护线程一起销毁 非守护线程:如果主线程销毁,用户线程继续运行且互不影响。 什么是守护线程,什么是非守护线程? java有两种状态的线程 阅读全文
posted @ 2022-04-06 10:07 zydbky 阅读(2981) 评论(0) 推荐(0)
摘要:想要子线程获取父线程中ThreadLocal中的值,需要其子类InheritableThreadLocal实现 测试代码 public static void main(String[] args) throws InterruptedException { Thread parentParent  阅读全文
posted @ 2022-04-06 10:04 zydbky 阅读(537) 评论(0) 推荐(0)
摘要:一、Java中创建线程主要有三种方式: 1、继承Thread类创建线程类 定义Thread类的子类,并重写该类的run方法,该run方法的方法体就代表了线程要完成的任务。因此把run()方法称为执行体。 创建Thread子类的实例,即创建了线程对象。 调用线程对象的start()方法来启动该线程。 阅读全文
posted @ 2022-03-29 17:33 zydbky 阅读(104) 评论(0) 推荐(0)
摘要:正常情况下,每个子线程完成各自的任务就可以结束了。不过有的时候,我们希望多个线程协同工作来完成某个任务,这时就涉及到了线程间通信了。 本文涉及到的知识点: thread.join(), object.wait(), object.notify(), CountdownLatch, CyclicBar 阅读全文
posted @ 2021-12-24 17:54 zydbky 阅读(52) 评论(0) 推荐(0)
摘要:最近阅读了JDK线程池ThreadPoolExecutor的源码,对线程池执行任务的流程有了大体了解,实际上这个流程也十分通俗易懂,就不再赘述了,别人写的比我好多了。 不过,我倒是对线程池是如何回收工作线程比较感兴趣,所以简单分析了一下,加深对线程池的理解吧。 下面以JDK1.8为例进行分析 1.  阅读全文
posted @ 2021-12-02 11:35 zydbky 阅读(132) 评论(0) 推荐(0)
摘要:线程池各个参数的作用,简单阐述一下线程池工作流程。 常见的线程池有哪些,分别适用于什么场景? 使用无界队列的线程会导致内存飙升吗? Java线程池概念 顾名思义,管理线程的池子,相比于手工创建、运行线程,使用线程池,有如下优点 降低线程创建和销毁线程造成的开销 提高响应速度。任务到达时,相对于手工创 阅读全文
posted @ 2021-11-26 11:41 zydbky 阅读(1794) 评论(0) 推荐(0)