Java多线程
文章平均质量分 64
Java多线程编程。
IT利刃出鞘
如果能飞,就不跑。如果能跑,就不走。
展开
-
Java多线程--InheritableThreadLocal的用法(有实例)
本文介绍InheritableThreadLocal的用法。ThreadLocal可以将数据绑定当前线程,如果希望当前线程的ThreadLocal的数据被子线程使用,实现方式就会相当困难(需要用户自己在代码中传递)。 InheritableThreadLocal可以方便地让子线程自动获取父线程ThreadLocal的数据。......原创 2022-09-25 10:18:42 · 2428 阅读 · 0 评论 -
Java多线程--ThreadLocal的原理
原文网址简介说明ThreadLocal简介 ThreadLocal 的作用是提供线程内的局部变量,这种变量在线程的生命周期内起作用,减少同一个线程内多个函数或者组件之间一些公共变量的传递的复杂度。...原创 2021-11-10 19:49:42 · 1700 阅读 · 3 评论 -
Java多线程--CountDownLatch的用法(有实例)
原文网址:简介说明 本文用示例介绍CountDownLatch的用法。概述 在日常开发中经常会遇到需要在主线程中开启多个线程去并行执行任务,并且主线程需要等待所有子线程执行完毕后再进行汇总的场景。 在CountDownLatch出现之前一般都使用线程的join()方法来实现这一点,但是join方法不够灵活,两者的对比如下:项 CountDonLatch join() 是否适用于线程池 适用。 不适用。...原创 2021-11-08 19:21:27 · 3864 阅读 · 3 评论 -
Java多线程--ReentrantReadWriteLock的用法和原理
原文网址:简介 本文介绍Java中的ReentrantReadWriteLock的用法及其原理。概述 在没有读写锁之前,假设使用普通的 ReentrantLock,那么虽然保证了线程安全,但是也浪费了一定的资源,因为如果多个读操作同时进行,其实并没有线程安全问题,可以允许让多个读操作并行,以便提高程序效率。 但是写操作不是线程安全的,如果多个线程同时写,或者在写的同时进行读操作,便会造成线程安全问题。 读写锁就解决了这样的问题,...原创 2021-11-08 19:17:19 · 601 阅读 · 1 评论 -
Java线程池系列--keepAliveTime的作用(原理)
原文网址简介 本文介绍Java的线程池中的keepAliveTime的作用概述 worker 线程会从阻塞队列中获取需要执行的任务,这个方法不是简单的 take 数据。 你也许好奇是怎样判断线程有多久没有活动了,是不是以为线程池会启动一个监控线程,专门监控哪个线程正在偷懒?想太多,其实只是在线程从工作队列 poll 任务时,加上了超时限制,如果线程在 keepAliveTime 的时间内 poll 不到任务,那我就认为这条线程没事做,可以干掉了...原创 2021-11-04 19:38:34 · 3686 阅读 · 1 评论 -
Java多线程--队列(Queue)--使用/教程/实例
原文网址:简介 本文用示例来介绍Java中的队列的用法。包括:DelayQueue,ConcurrentLinkedQueue,BlockingQueue。 文章最后有一个常见的面试题代码实例:机器要对手机按顺序做如下任务:生产、打包、发货。消费者等待收货,如何使用BlockingQueue完成?DelayQueue简介 DelayQueue:只有当其指定的延迟时间到了,才能够从队列中获取到该元素。DelayQueue就是基于Priority...原创 2021-11-04 19:37:50 · 6832 阅读 · 1 评论 -
Java多线程--ThreadLocal的用法(有实例)
原文网址:简介 本文用示例来介绍Java中ThreadLocal的用法。方法方法 作用 说明 void set(T value) 设置值 设置线程中本地变量xxx的值 T get() 获取值 获取线程中本地变量xxx的值 void remove() 删除 用完ThreadLocal后要调用此方法,不然可能导致内存泄露。 实例单个package org.example.a;public ....原创 2021-11-04 19:36:37 · 1167 阅读 · 1 评论 -
Java多线程--全局异常处理--方法/实例
原文网址:简介说明 本文用示例介绍如何处理Java多线程中的异常。 在Java中,线程中的异常是不能抛出到调用该线程的外部方法中捕获的。为什么不能抛出异常到外部线程捕获? 因为线程是独立执行的代码片断,线程的问题应该由线程自己来解决,而不要委托到外部。基于这样的设计理念,在Java中,线程方法的异常都应该在线程代码边界之内(run方法内)进行try catch并处理掉。换句话说,我们不能捕获从线程中逃逸的异常。JDK如何控制线程异常不会跑...原创 2021-11-04 19:39:22 · 1368 阅读 · 4 评论 -
Java线程池系列--线程池技术汇总
本文介绍Java线程池的技术。 Java线程池是Java后端面试必问的问题。原创 2021-10-14 20:05:33 · 1006 阅读 · 4 评论 -
Java多线程--编程杂项
run与start区别项 run() start() sleep与wait区别wait():另见《Java并发编程之美》=>1.3 线程通知与等待项 sleep() wait() 相同点 是否可中断 都可被中断 不同点 实际作用 暂时退出对cpu的占用 进入等待此...原创 2020-05-26 22:50:52 · 524 阅读 · 1 评论