Java初学有必要深入多线程编程吗?

      在准备面试的时候,是必学的(特别是校招),我记录过我曾经真实遇见过的多线程面试题,这里给大家分享一下。

      1、多线程了解多少啊?使用多线程会有什么问题?你是怎么理解“线程安全”的?

      2、如果我现在想要某个操作等待线程结束之后才执行,有什么方法可以实现?为什么要用CountDownLatch?CountDownLatch的底层是什么?(引出AQS)

     3、synchronized关键字来说一下,它的用途是什么?synchronized底层的原理是什么?

     4、线程安全的容器有哪些?(着重于ConcurrentHashMap、CopyWriteOnArrayList与其他非线程安全容器的区别以及它们的具体实现)

     5、ThreadLocal你了解过吗?主要是用来干什么的?具体的源码实现原理来说一下吧

     6、产生死锁的条件是什么?我们可以如何避免死锁?(可延伸到操作系统层面上的死锁)

     7、synchronized锁和ReentrantLock锁有什么区别呀?

     8、线程池你应该也看过吧,来说说为什么要用线程池。JDK默认实现了几个线程池,分别有xxx(自然地ThreadPoolExecutor构造函数的常用几个参数你也得一起说出来)https://www.bilibili.com/video/BV1N3411W7BT/icon-default.png?t=M276https://www.bilibili.com/video/BV1N3411W7BT/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值