JAVA-多线程面试题总结

目录

线程与进程的区别

并行与并发的区别

创建线程有几种方式

线程中的start()和run()有什么区别

runnable 和 callable 有什么区别

线程有哪些状态

新建 T1、T2、T3 三个线程,如何保证它们按顺序执行

notify()和 notifyAll()有什么区别?

wait 和 sleep 方法的有什么不同?

如何停止一个正在运行的线程?

synchronized关键字的底层原理

JMM(Java 内存模型)

CAS

谈谈对 volatile 的理解

AQS

ReentrantLock的实现原理

Semaphore 实现原理

synchronized和Lock有什么区别 ?

死锁产生的原因及如何规避

如何进行死锁诊断?

ConcurrentHashMap

导致并发程序出现问题的根本原因是什么

线程池的核心参数

线程池中有哪些常见的阻塞队列

如何确定核心线程数

线程池的种类有哪些

为什么不建议用Executors创建线程池

如何控制某个方法允许并发访问线程的数量

谈谈对ThreadLocal的理解


线程与进程的区别

  • 进程是正在运行程序的实例,进程中包含了线程,每个线程执行不同的任务

  • 线程作为最小调度单位,进程作为资源分配的最小单位

  • 不同的进程使用不同的内存空间,在当前进程下的所有线程可以共享内存空间

  • 线程更轻量,线程上下文切换成本一般上要比进程上下文切换低(上下文切换指的是从一个线程切换到另一个线程)

并行与并发的区别

  • 并发(concurrent)是同一时间应对(dealing with)多件事情的能力

  • 并行(parallel)是同一时间动手做(doing)多件事情的能力

创建线程有几种方式

创建线程的几种方式

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

傻蛋800

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值