多线程 1、线程池 4种线程池的区别 2、interrupted()、interrupte()、is interrupted()的区别 interrupted():返回当前线程的中断状态,并设置中断标志位为false interrupte():设置终端标志位为true。注:当线程处于阻塞状态如:sleep()、wait()、join()会抛出InterruptedException异常,并设置中断标志位为false isinterrupted():返回当前线程的中断状态 3、Object wait()、notify()、notifyall()和Condition await()、signal()、signalAll()的区别(等待池、锁池) 1) Object 对应的是synchronized方式的锁 ;Condition对应的是lock方式的锁 2) Condition可以有多个等待池 使用的注意事项:wait()要放在while循环内,防止条件变化导致的异常 my.oschina.net/u/174366/bl… juejin.im/post/5aeec6… juejin.im/post/5aeea5… juejin.im/entry/5a2bb… www.cnblogs.com/moongeek/p/… 4、wait()、sleep()的区别 1)sleep()是thread类的方法,会让出cpu不会释放锁 2)wait()是object类的方法,会让出cpu,并且释放锁 3)wait()方法只能在同步块中使用 5、yield()此线程让出cpu 6、join()当前线程等待指定线程运行完毕后再执行 7、进程和线程的区别? 各进程的地址空间独立,同一进程的不同线程共享地址空间 进程上下文切换比线程上下文切换花销大 进程是运行中的程序,线程是进程内部的一个执行序列。 线程是调度的基本单位,进程是资源分配的基本单位。
8、用户态、内核态 juejin.im/post/5e5226… 处于操作权限的控制 9、内存、cpu、硬盘之间的关系 www.jianshu.com/p/3cd8ebb18… 10、阻塞的线程为什么会从用户态到内核态? 线程的调度是在内核态完成,代码在用户态完成。 11、🔐升级
blog.csdn.net/weixin_3914… 12、cas会出现aba的问题 juejin.im/post/5a73cb… 解决方案:AtomicStampedReference blog.csdn.net/monkeybroth… cas的缺点:1、aba 2、循环时间过长 3、只能保证一个共享的原子变量 (AtomicReference) 13、美团技术平台关于锁的wiki tech.meituan.com/2018/11/15/…
14、reentrantlock的源码分析 tech.meituan.com/2019/12/05/… objcoding.com/2019/05/05/… (waitstatus状态) 15、对象头与对象锁之间的关系 juejin.im/post/5b4eec… 对象头、lock record、monitor segmentfault.com/a/119000002… 锁消除:依据逃逸分析的数据支持 锁粗化:将多个连续的解锁、加锁操作连接在一起,扩展成一个更大范围的锁
16、线程池的工作原理? blog.csdn.net/wo541075754… tech.meituan.com/2020/04/02/… my.oschina.net/pingpangkua… 继承AQS) www.cnblogs.com/yougewe/p/1… futureTask 的返回值(outcome)www.jianshu.com/p/50c03b122… www.jianshu.com/p/59e4d380b…
17、如何设置线程池参数 18、阻塞队列 ArrayBlockingQueue:blog.csdn.net/weixin_4393… LinkedBlockingQueue:blog.csdn.net/weixin_4393… SynchronousQueue :blog.csdn.net/weixin_4393… PriorityQueue:blog.csdn.net/weixin_4393… delayQueue:blog.csdn.net/weixin_4393…
19、ThreadLocal juejin.cn/post/684490… zhuanlan.zhihu.com/p/61587053(… www.cnblogs.com/shoren/p/ja… ) www.cnblogs.com/-beyond/p/1… cloud.tencent.com/developer/a… 20、AQS zhuanlan.zhihu.com/p/97317561 juejin.cn/post/684490… 21、condition juejin.cn/post/684490… 22、释放锁 segmentfault.com/a/119000001… 23、countdownlacth(等待N个线程完成后在执行后续方法,作用类似于join) 原理,先初始化state 为N await()结束的条件是state==0,countdown可以使state-1,直到减为0 www.jianshu.com/p/795151ac2… segmentfault.com/a/119000001… 24、CyclicBarrier segmentfault.com/a/119000002…