java 多线程面试_Java多线程与并发面试题及答案(笔试部分)

1、什么是线程?

7988a537cd94fd8b4ae89d8973496d91.png

2、线程和进程有什么区别?

d9be9e1a70266e557bce775dd9a633cd.png

3、如何在Java中实现线程?

cb287d1f78c18a933edfc555206dacfa.png

4、Java关键字volatile与synchronized作用与区别?

5b4af6a19a66acc10265bed06f9206ae.png

volatile修饰的变量不保留拷贝,直接访问主内存

8496ad5b397d40649ffce2507a749348.png

synchronized用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码

5、有哪些不同的线程生命周期?

9b278c0ea946e91b18447130d1512dbf.png

6、你对线程优先级的理解是什么?

eec68b3d0eb3eb47d1739cc5a6f6c78a.png

7、什么是死锁(Deadlock)?如何分析和避免死锁?

a29c68221d61629d8245313b4a1e874d.png

8、什么是线程安全?Vector是一个线程安全类吗?

33b3683b1585f0ff9fa243116762cab7.png

9、Java中如何停止一个线程?

f4a7f87ee3bc90535f17320cb0d1c28f.png

10、什么是ThreadLocal?

4c73c8a88d6853a3b78ec149512ee163.png

11、Sleep()、suspend()和wait()之间有什么区别?

e8fbd15f404c9a295f76bebd62c2a31e.png

注意:sleep()是一个静态方法。这意味着只对当前线程有效,一个常见的错误是调用t.sleep(),(这里的t是一个不同于当前线程的线程)。即便是执行t.sleep(),也是当前线程进入睡眠,而不是t线程。t.suspend()是过时的方法,使用suspend()导致线程进入停滞状态,该线程会一直持有对象的监视器,suspend()容易引起死锁问题。

ec045e10a5c9a605baa62399a025ec4d.png

12、什么是线程饿死,什么是活锁?

66d5f851913e6d1c57e5f5b2b058519a.png

13、什么是Java Timer类?(如何创建一个有特定时间间隔的任务?)

cb90683ff70b201287e21aead01d0fab.png

14、Java中的同步集合与并发集合有什么区别?

5bad57a046eba8b13cefa1590dcabce4.png

15、同步方法和同步块,哪个是更好的选择?

3e70238a5437ead781d6cf4e0df5b771.png

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值