
Java多线程面试
关于Java多线程的面试题
还没当码农就秃头的年轻人
这个作者很懒,什么都没留下…
展开
-
Java多线程面试之线程通信
1.为什么wait/notify/notifyAll是Object类中的方法,而不是Thread里的方法 2.等待通知机制中wait/notify/notifyAll方法的作用 3.notify/notifyAll的区别? 4.wait()和sleep()的区别? 5.生产者消费者模型 6.await方法的使用为什么需要绑定到一个condition对象上 7.一个ReenteantLock对象可以拥有多个Condition对象,这些对象有什么作用 ...原创 2020-09-20 21:54:35 · 205 阅读 · 0 评论 -
Java多线程面试之线程同步
线程同步1.并发编程的三大特性?2.synchronized同步代码块和同步方法的底层原理3.关于synchornzied锁升级的过程 1.并发编程的三大特性? 原子性 保证一个操作或多个操作要么全部执行且在执行过程中没有任何打断、要么全部不执行 可见性 多个线程访问同一共享数据的时候,如果某一个线程修改了此共享数据,那么其他线程能够立即看到此数据的改变。 有序性 代码执行时的顺序与语句顺序一致。也就是说执行前不经历重排序操作。 2.synchronized同步代码块和同步方法的底层原理 对于synchro原创 2020-09-20 20:44:00 · 174 阅读 · 0 评论 -
Java多线程面试之线程池
线程池1.为什么要出现线程池?2.Java当中的线程池?3.线程池的状态4.execute方法和submit方法的区别 1.为什么要出现线程池? 1)多线程的劣势? 线程是不能无限的进行创建,当线程创建数量比较多的时候,反而会影响系统的性能 a.线程的创建和销毁会消耗一定的时间 b.线程需要占用内存资源,大量的线程创建会导致OOM c.大量的线程回收会给GC带来比较大的压力 d.线程抢占资源进行上下文切换是一个耗时的过程 2)什么是线程池? 线程池是指事先创建若干个可执行的线程放入一个池子里面,当前有任务的原创 2020-09-20 15:30:22 · 106 阅读 · 0 评论 -
Java多线程面试之线程安全的集合
线程安全的集合1.JDK1.8底层数据结构与1.8之前的区别2.ConcurrentHashMap中putVal的流程3.为什么是tabAt(tab, i = (n - 1) & hash)),而不是table[index]? 1.JDK1.8底层数据结构与1.8之前的区别 1.8之前 HashMap底层是数组加链表的形式 数组的默认长度为16,加载因子为0.75,也就是160.75=12(阈值) 当计算出元素的位置在数组中冲突时,那么会以链表的形式存储新的元素,新的元素插在链表的头部,然后将链表下原创 2020-09-20 14:24:28 · 232 阅读 · 0 评论 -
Java多线程之基础知识
Java多线程之基础知识1.Callable接口和Runnable接口的区别2.线程六状态之间的转换3.start()方法的调用和run()方法调用有什么区别?4.sleep和yield的区别5.isInterrupted和interrupted方法之间的区别 1.Callable接口和Runnable接口的区别 1)Callable->call Runnable->run 2)callable任务的执行存在返回值,而Runnable任务的执行不能有返回值 3)call方法可抛出异常,而run方原创 2020-09-16 21:45:34 · 116 阅读 · 0 评论