线程
The Best of jc
这个作者很懒,什么都没留下…
展开
-
ThreadLocal面试必备基础知识
类结构public class ThreadLocal<T>ThreadLocal 定义类时带有泛型,说明 ThreadLocal 可以储存任意格式的数据。只要该线程处于活动状态并且实例是可访问的,每个线程都隐式引用threadlocal副本。只要线程消失,其所有threadlocal本地实例副本会受到垃圾回收(除非存在其他对这些副本的引用)关键属性基本属性// threadLocalHashCode 表示当前 ThreadLocal 的 hashCode,用于计算当前 Th原创 2020-09-15 19:54:51 · 124 阅读 · 0 评论 -
线程面试必备基础知识
当创建子线程时,怎么解决子线程是得不到父线程的 ThreadLocal,使用 InheritableThreadLocal 来代替 ThreadLocal,ThreadLocal 和 InheritableThreadLocal 都是线程的属性,所以可以做到线程之间的数据隔离,在多线程环境下我们经常使用,但在有子线程被创建的情况下,父线程 ThreadLocal 是无法传递给子线程的,但 InheritableThreadLocal 可以,主要是因为在线程创建的过程中,会把InheritableThrea原创 2020-09-09 22:03:11 · 166 阅读 · 0 评论 -
线程的Future和ExecutorService必知必会
CallableCallable 是一个接口,约定了线程要做的事情,和 Runnable 一样,不过这个线程任务是有返回值的。@FunctionalInterfacepublic interface Callable<V> { /** 运行得出结果,如果运行失败会抛出异常 */ V call() throws Exception;}返回值是一个泛型,可以定义成任何类型,但使用的时候,都不会直接使用 Callable,而是会结合 FutureTa原创 2020-09-07 14:34:18 · 289 阅读 · 1 评论 -
线程必会知识
Thread的特性每个线程都有优先级,高优先级的线程可能会比优先级低的优先执行。父线程创建子线程后,优先级、是否是守护线程等属性父子线程是一致的。JVM 启动时,通常都启动 MAIN 非守护线程,以下情况,线程会停止退出方法被调用,并且安全机制允许这么做(比如调用 Thread.interrupt 方法);所有非守护线程都消亡,或者从运行的方法正常返回,或者运行的方法抛出了异常;每个线程都有名字,多个线程可能具有相同的名字,Thread 有的构造器如果没有指定名字,会原创 2020-09-05 15:11:53 · 119 阅读 · 0 评论