并发编程

并行跟并发有什么区别?

说说什么是进程和线程?

说说线程有几种创建方式?

为什么调用start()方法时会执行run()方法,那怎么不直接调用run()方法?

线程有哪些常用的调度方法?

线程有几种状态?

什么是线程上下文切换?

守护线程了解吗?

线程间有哪些通信方式?

ThreadLocal是什么?

你在工作中用到过ThreadLocal吗?

ThreadLocal怎么实现的呢?

ThreadLocal 内存泄露是怎么回事?

ThreadLocalMap的结构了解吗?

ThreadLocalMap怎么解决Hash冲突的?

ThreadLocalMap扩容机制了解吗?

父子线程怎么共享数据?

说一下你对Java内存模型(JMM)的理解?

说说你对原子性、可见性、有序性的理解?

那说说什么是指令重排?

指令重排有限制吗?happens-before了解吗?

as-if-serial又是什么?单线程的程序一定是顺序的吗?

volatile实现原理了解吗?

synchronized用过吗?怎么使用?

synchronized的实现原理?

除了原子性,synchronized可见性,有序性,可重入性怎么实现?

锁升级?synchronized优化了解吗?

说说synchronized和ReentrantLock的区别?

AQS了解多少?

ReentrantLock实现原理?

ReentrantLock怎么实现公平锁的?

CAS呢?CAS了解多少?

Java有哪些保证原子性的方法?如何保证多线程下i++ 结果正确?

原子操作类了解多少?

AtomicInteger 的原理?

线程死锁了解吗?该如何避免?

那死锁问题怎么排查呢?

CountDownLatch(倒计数器)了解吗?

CyclicBarrier(同步屏障)了解吗?

CyclicBarrier和CountDownLatch有什么区别?

Semaphore(信号量)了解吗?

Exchanger 了解吗?

什么是线程池?

能说说工作中线程池的应用吗?

Last updated