持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第三十一天,点击查看活动详情
前言:七月末八月初的时候,秋招正式打响,公司会放出大量的全职和实习岗位。为了帮助秋招的小伙伴们,学长这里整理了一系列的秋招面试题给大家,所以小伙伴们不用太过焦虑,相信你们一定能超常发挥,收到心仪公司的Offer~~
内容涵盖:Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、Redis、MySQL、Spring、Spring Boot、Spring Cloud、RabbitMQ、Kafka、Linux等技术栈
** 再次渡入繁世,人潮汹涌,眼里茫然,信仰永恒,皆为华夏**
编辑
目录
多线程&并发篇
24、说说进程和线程的区别?
-
进程是一个“执行中的程序”,是系统进行资源分配和调度的一个独立单位。
-
线程是进程的一个实体,一个进程中拥有多个线程,线程之间共享地址空间和其它资源(所以
通信和同步等操作线程比进程更加容易)
- 线程上下文的切换比进程上下文切换要快很多。
(1)进程切换时,涉及到当前进程的CPU环境的保存和新被调度运行进程的CPU环境的设置。
(2)线程切换仅需要保存和设置少量的寄存器内容,不涉及存储管理方面的操作。
25,产生死锁的四个必要条件?
-
互斥条件:一个资源每次只能被一个线程使用
-
请求与保持条件:一个线程因请求资源而阻塞时,对已获得的资源保持不放
-
不剥夺条件:进程已经获得的资源,在未使用完之前,不能强行剥夺
-
循环等待条件:若干线程之间形成一种头尾相接的循环等待资源关系
26、如何避免死锁?
指定获取锁的顺序,举例如下:
-
比如某个线程只有获得A锁和B锁才能对某资源进行操作,在多线程条件下,如何避免死锁?
-
获得锁的顺序是一定的,比如规定,只有获得A锁的线程才有资格获取B锁,按顺序获取锁就可
以避免死锁!!!
本期分享到此为止,关注博主不迷路,叶秋学长带你上高速~~