并发编程相关面试题

线程基础

线程和进程的区别:

并发编程相关面试题_第1张图片

-----------------------------------------------------------------------

创建线程的方式:

1 继承Thread类 

2 实现runnable接口

3 实现callable 接口(有返回值的)

4 线程池创建线程

-------------------------------------------------------------------------

run()方法和start()方法有什么区别;

start方法是用来启动线程的,只能被调用一次

run()方法封装的是要执行的代码,可以执行多次

并发编程相关面试题_第2张图片

-----------------------------------------------------------------------------------

线程包括哪些状态,状态之间是如何变化的?

并发编程相关面试题_第3张图片

并发编程相关面试题_第4张图片

-------------------------------------------------------------------------------------

有多个线程如何保证按顺序执行?

使用join()方法

------------------------------------------

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

notifyAll唤醒所有wait线程

notify只随机唤醒一个wait线程

------------------------------------------

wait和sleep方法有什么不同?

并发编程相关面试题_第5张图片

--------------------------------------------------------------------------------------------------------------------

如何停止线程?

并发编程相关面试题_第6张图片

=================================================================

线程安全相关面试题

synchronized关键字的底层原理

并发编程相关面试题_第7张图片


谈谈JMMjava内存模型

并发编程相关面试题_第8张图片


CAS知道吗?乐观锁和悲观锁的区别?

并发编程相关面试题_第9张图片


谈谈你对volatile的理解?

并发编程相关面试题_第10张图片


什么是AQS?

并发编程相关面试题_第11张图片


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

并发编程相关面试题_第12张图片


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

并发编程相关面试题_第13张图片


多线程的使用场景?

并发编程相关面试题_第14张图片


谈谈你对ThreadLocl理解?

它是解决线程安全的操作类,她会给每个线程分配一个独立的线程副本,解决了线程并发访问冲突的问题。他也实现了线程内的资源共享

并发编程相关面试题_第15张图片

你可能感兴趣的:(面试,jvm,职场和发展)