三、多线程
35.并行和并发有什么区别?
并行:两件事同时在不间断的进行
并发:两件事看起来在同时执行,实际上是在快速抢资源执行
36.线程和进程的区别?
线程是操作系统资源分配的基本单位,进程是任务调度和执行的基本单位。
在操作系统中,可以同时运行多个进程,而在同一个进程中可以有多个线程同时执行。系统在运行时会为每个进程分配不同的内存空间,儿线程使用的资源来自其所属线程的资源。线程是进程的一部分。
37.守护线程是什么?
java中的线程分为两类:用户线程和守护线程。
java中,无论是线程还是线程池,默认都是用户线程,因此用户线程也被称作普通线程。
守护线程也被称为后台线程。服务线程、或精灵线程、,守护线程是为用户线程服务的,当线程中的用户线程都执行结束后,守护线程也会随着结束。
38.创建线程有哪几种方式?
39.说一下 runnable 和 callable 有什么区别?
40.线程有哪些状态?
41.sleep() 和 wait() 有什么区别?
42.notify()和 notifyAll()有什么区别?
43.线程的 run()和 start()有什么区别?
44.创建线程池有哪几种方式?
45.线程池都有哪些状态?
46.线程池中 submit()和 execute()方法有什么区别?
47.在 java 程序中怎么保证多线程的运行安全?
48.多线程锁的升级原理是什么?
49.什么是死锁?
50.怎么防止死锁?
51.ThreadLocal 是什么?有哪些使用场景?
52.说一下 synchronized 底层实现原理?
53.synchronized 和 volatile 的区别是什么?
54.synchronized 和 Lock 有什么区别?
55.synchronized 和 ReentrantLock 区别是什么?
56.说一下 atomic 的原理?






