快捷搜索:  汽车  科技

多线程使用场景及其面试题(干货多线程高并发大厂面试集锦)

多线程使用场景及其面试题(干货多线程高并发大厂面试集锦)7. 什么是 ThreadLocal?import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; public class ThreadTest { /** * @param args */ private int j; private Lock lock = new ReentrantLock(); public static void main(String[] args) { // TODO Auto-generated method stub ThreadTest tt = new ThreadTest(); for(int i=0;i<2;i ) { new Thread(tt.new A

在Java面试中,多线程,高并发是常见的考点,为了避免在面试时出现懵逼现状,对于这个知识点,同学们还是要认认真真复习啊~所以,今天,我特意整理了一些大厂常考的关于多线程高并发的知识点,让大家更高效地复习和准备~

话不多说,马上跟大家一起分享!

1. stop() 和 suspend() 方法为何不推荐使用?

多线程使用场景及其面试题(干货多线程高并发大厂面试集锦)(1)

2. sleep() 和 wait() 有什么区别?

多线程使用场景及其面试题(干货多线程高并发大厂面试集锦)(2)

多线程使用场景及其面试题(干货多线程高并发大厂面试集锦)(3)

3. 同步和异步有何异同,在什么情况下分别使用他们?

多线程使用场景及其面试题(干货多线程高并发大厂面试集锦)(4)

4. 当一个线程进入一个对象的一个 synchronized 方法后,其它线程是否可进入此对象的其它方法?

多线程使用场景及其面试题(干货多线程高并发大厂面试集锦)(5)

5. 简述 synchronized 和 java.util.concurrent.locks.Lock 的异同?

多线程使用场景及其面试题(干货多线程高并发大厂面试集锦)(6)

多线程使用场景及其面试题(干货多线程高并发大厂面试集锦)(7)

import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; public class ThreadTest { /** * @param args */ private int j; private Lock lock = new ReentrantLock(); public static void main(String[] args) { // TODO Auto-generated method stub ThreadTest tt = new ThreadTest(); for(int i=0;i<2;i ) { new Thread(tt.new Adder()).start(); new Thread(tt.new Subtractor()).start(); } } private class Subtractor implements Runnable { @Override public void run() { // TODO Auto-generated method stub while(true) { /*synchronized (ThreadTest.this) { System.out.println("j--=" j--); //这里抛异常了,锁能释放吗? }*/ lock.lock(); try { System.out.println("j--=" j--); }finally { lock.unlock(); } } } } private class Adder implements Runnable { @Override public void run() { // TODO Auto-generated method stub while(true) { /*synchronized (ThreadTest.this) { System.out.println("j =" j ); }*/ lock.lock(); try { System.out.println("j =" j ); }finally { lock.unlock(); } } } } }

6. 概括的解释下线程的几种可用状态。

多线程使用场景及其面试题(干货多线程高并发大厂面试集锦)(8)

7. 什么是 ThreadLocal?

多线程使用场景及其面试题(干货多线程高并发大厂面试集锦)(9)

8. run() 和 start() 区别

多线程使用场景及其面试题(干货多线程高并发大厂面试集锦)(10)

多线程使用场景及其面试题(干货多线程高并发大厂面试集锦)(11)

9. 请说出你所知道的线程同步的方法。

多线程使用场景及其面试题(干货多线程高并发大厂面试集锦)(12)

10. 线程调度和线程控制。

多线程使用场景及其面试题(干货多线程高并发大厂面试集锦)(13)

多线程使用场景及其面试题(干货多线程高并发大厂面试集锦)(14)

11. 什么是线程饿死,什么是活锁?

多线程使用场景及其面试题(干货多线程高并发大厂面试集锦)(15)

12. 多线程中的忙循环是什么?

多线程使用场景及其面试题(干货多线程高并发大厂面试集锦)(16)

13. volatile 变量是什么?volatile 变量和 atomic 变量有什么不同?

多线程使用场景及其面试题(干货多线程高并发大厂面试集锦)(17)

多线程使用场景及其面试题(干货多线程高并发大厂面试集锦)(18)

14. volatile 类型变量提供什么保证?能使得一个非原子操作变成原子操作吗?

多线程使用场景及其面试题(干货多线程高并发大厂面试集锦)(19)

* 声明:资料等作品均来源互联网,版权归该资源的合法拥有者所有,分享的资料仅供读者预览及学习交流使用。禁止商业使用。原作者如果认为本文侵犯了您的版权,请联系本号立即删除!

猜您喜欢: