随笔分类 -  Java / 多线程

摘要:1 基本使用 ThreadLocal的作用是保存线程本地变量,在多线程在CPU时间分片交替执行过程中,每个线程只能获取到它自己的数据。 ThreadLocal的使用非常简单: 创建ThreadLocal。 线程执行逻辑前期,保存本地变量。 线程执行逻辑后期,获取本地变量。 线程处理完成之前,手动清除 阅读全文
posted @ 2023-02-25 12:53 Xianuii 阅读(317) 评论(0) 推荐(0) 编辑
摘要:在学习之前,需要对线程的概念和多线程编程的常见问题有基本理解。 1 线程 Thread(重要) Runnable(重要) Callable和FutureTask(重要) CompletableFuture 2 线程池 ThreadPoolExecutor(重要) ScheduledThreadPoo 阅读全文
posted @ 2023-02-24 17:15 Xianuii 阅读(194) 评论(0) 推荐(0) 编辑
摘要:1 基本使用 ScheduledThreadPoolExecutor是一种特殊的线程池,它可以执行延迟任务和定时任务。 首先,通常会在全局范围内创建线程池对象,可以是静态变量,或者Spring单例对象: ThreadFactory threadFactory = Executors.defaultT 阅读全文
posted @ 2023-02-20 20:59 Xianuii 阅读(1209) 评论(0) 推荐(0) 编辑
摘要:1 使用 线程池使用池化技术,通过重复使用线程,避免了重复创建线程的资源浪费。 首先,我们需要在全局创建ThreadPoolExecutor对象,可以通过静态变量,也可以通过Spring单例对象。 然后,在业务调用处,创建任务并提交到线程池。 最后,为了安全考虑,在应用程序关闭时往往需要通过钩子函数 阅读全文
posted @ 2023-02-20 11:56 Xianuii 阅读(200) 评论(0) 推荐(0) 编辑
摘要:1 使用 java.util.concurrent.Callable是有返回值的多线程任务: public interface Callable<V> { V call() throws Exception; } 通过实现Callable接口,在call()方法中定义业务逻辑,并返回处理结果。例如: 阅读全文
posted @ 2023-02-17 13:29 Xianuii 阅读(170) 评论(0) 推荐(0) 编辑
摘要:1 创建线程 1.1 两种创建方法 我们可以通过继承Thread类来创建一个线程: Thread thread = new Thread() { @Override public void run() { System.out.println("run()"); } }; thread.start( 阅读全文
posted @ 2023-02-16 21:47 Xianuii 阅读(94) 评论(0) 推荐(0) 编辑

主题色彩
点击右上角即可分享
微信分享提示