
Java并发编程面试总结
文章平均质量分 90
Java并发编程
享阅工作室
本人多年软件开发和管理经验,在多家互联网公司担任过高级软件开发、架构师、技术经理、技术总监等。工作认真负责,态度诚恳严谨,思维活跃,勇工并挑战解决项目研发中的难题。主要研究方向移动端和前端开发,包括RN、Flutter等跨平台开发以及Android、Vue、React、Node.js、SpringBoot等都有所研究。生活中爱好广泛,乐观向上,易于与不同类型人群沟通,能在较大的压力下保持良好的工作心态,将百分百的热情投入到每一天的每一分钟。
展开
-
java并发编程基础面试总结07
接上一篇java并发编程知识总结06,继续总结一下java面试基础知识。65、volatile 关键字的作用对于可见性,Java 提供了 volatile 关键字来保证可见性和禁止指令重排。 volatile 提供 happensbefore 的保证,确保一个线程的修改能对其他线程是可见的。当一个共享变量被 volatile 修饰 时,它会保证修改的值会立即被更新到主内存中,当有其他线程需要读取时,它会去内存中读取新 值。 从实践角度而言,volatile 的一个重要作用就是和 CAS 结合,保证原创 2022-01-10 18:48:42 · 185 阅读 · 0 评论 -
java并发编程基础面试总结06
54、并发关键字 synchronized ? 在 Java 中,synchronized 关键字是用来控制线程同步的,就是在多线程的环境下,控制 synchronized 代码段不被多个线程同时执行。synchronized 可以修饰类、方法、变量。 另外,在 Java 早期版本中,synchronized属于重量级锁,效率低下,因为监视器锁(monitor) 是依赖于底层的操作系统的 Mutex Lock 来实现的,Java 的线程是映射到操作系统的原生线程之上 的。如果要挂起或者唤醒一...原创 2022-01-09 09:24:06 · 219 阅读 · 0 评论 -
java并发编程基础面试总结05
接上一篇java并发编程知识总结04,继续总结一下java面试并发编程基础知识。45. 在监视器(Monitor)内部,是如何做线程同步的?程序应该做哪种级别的同 步?在 java 虚拟机中,监视器和锁在Java虚拟机中是一块使用的。监视器监视一块同步代码块,确保 一次只有一个线程执行同步代码块。每一个监视器都和一个对象引用相关联。线程在获取锁之前不 允许执行同步代码。 一旦方法或者代码块被 synchronized 修饰,那么这个部分就放入了监视器的监视区域,确保一次 只能有一个线程执行该部分..原创 2021-12-31 16:53:40 · 433 阅读 · 0 评论 -
java并发编程基础面试总结04
接上一篇java并发编程知识总结03,继续总结一下java面试并发基础知识。35. Java 中 interrupted 和 isInterrupted 方法的区别?interrupt:用于中断线程。调用该方法的线程的状态为将被置为”中断”状态。 注意:线程中断仅仅是置线程的中断状态位,不会停止线程。需要用户自己去监视线程的状态为并做处 理。支持线程中断的方法(也就是线程中断后会抛出interruptedException 的方法)就是在监视线程的 中断状态,一旦线程的中断状态被置为“中断状态”原创 2021-12-31 16:34:17 · 293 阅读 · 0 评论 -
java并发编程基础面试总结03
新建(new):新创建了一个线程对象。就绪(可运行状态)(runnable):线程对象创建后,当调用线程对象的 start()方法,该线程处于就 绪状态,等待被线程调度选中,获取cpu的使用权。运行(running):可运行状态(runnable)的线程获得了cpu时间片(timeslice),执行程序代码。 注:就绪状态是进入到运行状态的唯一入口,也就是说,线程要想进入运行状态执行,首先必须处 于就绪状态中;阻塞(block):处于运行状态中的线程由于某种原因.原创 2021-12-26 10:31:32 · 409 阅读 · 0 评论 -
java并发编程基础面试总结02
接上一篇java并发编程知识总结02,继续总结一下,上一篇主要涉及了一些基本的概念,这一篇对基本概念会做一些延伸。11. 什么是上下文切换? 多线程编程中一般线程的个数都大于 CPU 核心的个数,而一个 CPU 核心在任意时刻只能被一个线 程使用。为了让这些线程都能得到有效执行,CPU 采取的策略是为每个线程分配时间片并进行轮转的方式。 当一个线程的时间片用完的时候就会重新处于就绪状态让给其他线程使用,这个过程就属于 一次上下文切换。 概括来说就是:当前任务在...原创 2021-12-21 18:59:10 · 455 阅读 · 0 评论 -
java并发编程基础面试总结01
1 什么是多线程多线程:多线程是指程序中包含多个执行流,即在一个程序中可以同时运行多个不同的线程来执行 不同的任务。2 多线程应用场景例如: 迅雷多线程下载、数据库连接池、分批发送短信等。3 为什么要使用并发编程 提升多核CPU的利用率: 一般来说一台主机上的会有多个CPU核心,我们可以创建多个线程,理论上讲操作系统可以将多个线程分配给不同的CPU去执行,每个CPU执行一个线程,这样就提高了 CPU的使用效率,如果使用单线程就只能有一个CPU核心被使用。 比如当我们...原创 2021-12-16 17:30:19 · 620 阅读 · 0 评论