多线程
文章平均质量分 89
松柏123
这个作者很懒,什么都没留下…
展开
-
⛳面试题-简述并分析ThreadLocalMap的key为什么是弱引用
注意:因为 ThreadLocal 的使用规范是使用 static final 进行修饰,所以 ThreadLocal 是存放在常量池的,不容易被回收,所以,ThreadLocalMap 在使用 ThreadLocal 对象作为 key 的时候需要使用弱引用,以保证不会出现内存泄漏;然而,需要注意的是,由于弱引用的特性,在某些情况下可能会导致 key 被提前回收,导致数据访问异常,因此在使用 ThreadLocal 时也需要注意合理的生命周期管理,避免出现意外情况;ThreadLocal 源码结构。原创 2023-11-14 11:37:34 · 777 阅读 · 0 评论 -
⛳ 面试题-单例模式会存在线程安全问题吗?
单例模式是 Java 中常用的设计模式之一,属于设计模式三大类中的创建型模式。在运行期间,保证某个类仅有一个实例,并提供一个访问它的全局访问点。单例模式所属类的构造方法是私有的,所以单例类是不能被继承的。实现线程安全的单例模式有以下几种方式有:饿汉式、懒汉式、懒汉式改良版(双重同步锁),内部静态类、枚举;相比于饿汉式,懒汉式显得没那么 “饿”,在真正需要的时候在去创建实例。优点:线程安全的,可以延时加载。缺点:调用效率不高(有锁,且需要先创建对象)、使用反射,序列化创建对象依然可以不是单例的。原创 2023-08-31 13:13:17 · 1055 阅读 · 0 评论 -
⛳ 多线程面试-什么是多线程上下文切换?
多线程会共同使用一组计算机上的CPU ,而线程数大于给线程分配的 CPU 数量时,为了让各个线程都有执行的机会,就需要轮转使用CPU。不同的线程切换使用 CPU, 发生的切换数据等, 就是上下文切换在上下文切换过程中, CPU 会停止处理当前运行的程序, 并保存当前程序运行的具体位置, 以便之后继续运行. 从这个角度来看, 上下文切换有点像我们同时阅读几本书, 在来回切换书本的同时我们需要记住每本书当前读到的页码. 在程序中, 上下文切换过程中的 “页码” 信息是保存在进程控制块(PCB)中的。原创 2023-08-05 10:41:09 · 390 阅读 · 0 评论 -
⛳ Java多线程 一,线程基础
在计算机科学中,程序(Program),进程(Process)和线程(Thread)是三个重要的概念,它们都与执行计算机任务和程序相关。程序(Program):程序是一系列指令的集合,这些指令按照特定的顺序组织,用于完成特定的任务或执行特定的操作。程序是静态的,它们只是存储在计算机磁盘或存储设备中,并不直接执行。当我们想要运行一个程序时,操作系统会将程序加载到内存中,并将其转换为进程,然后才能执行其中的指令。进程(Process):进程是计算机程序在执行时的实例。原创 2023-08-01 21:25:29 · 206 阅读 · 0 评论