多线程&并发篇(十三)

62 阅读1分钟

​​​​​​​​​​​​​​​​​​​​持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第三十一天,点击查看活动详情

前言:七月末八月初的时候,秋招正式打响,公司会放出大量的全职和实习岗位。为了帮助秋招的小伙伴们,学长这里整理了一系列的秋招面试题给大家,所以小伙伴们不用太过焦虑,相信你们一定能超常发挥,收到心仪公司的Offer~~

内容涵盖:Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、Redis、MySQL、Spring、Spring Boot、Spring Cloud、RabbitMQ、Kafka、Linux等技术栈

** 再次渡入繁世,人潮汹涌,眼里茫然,信仰永恒,皆为华夏**

​编辑

目录

多线程&并发篇

24、说说进程和线程的区别?

25,产生死锁的四个必要条件?

26、如何避免死锁?

本期分享到此为止,关注博主不迷路,叶秋学长带你上高速~~


多线程&并发篇

24、说说进程和线程的区别?

  1. 进程是一个“执行中的程序”,是系统进行资源分配和调度的一个独立单位。

  2. 线程是进程的一个实体,一个进程中拥有多个线程,线程之间共享地址空间和其它资源(所以

通信和同步等操作线程比进程更加容易)

  1. 线程上下文的切换比进程上下文切换要快很多。

(1)进程切换时,涉及到当前进程的CPU环境的保存和新被调度运行进程的CPU环境的设置。

(2)线程切换仅需要保存和设置少量的寄存器内容,不涉及存储管理方面的操作。

25,产生死锁的四个必要条件?

  1. 互斥条件:一个资源每次只能被一个线程使用

  2. 请求与保持条件:一个线程因请求资源而阻塞时,对已获得的资源保持不放

  3. 不剥夺条件:进程已经获得的资源,在未使用完之前,不能强行剥夺

  4. 循环等待条件:若干线程之间形成一种头尾相接的循环等待资源关系

26、如何避免死锁?

指定获取锁的顺序,举例如下:

  1. 比如某个线程只有获得A锁和B锁才能对某资源进行操作,在多线程条件下,如何避免死锁?

  2. 获得锁的顺序是一定的,比如规定,只有获得A锁的线程才有资格获取B锁,按顺序获取锁就可

以避免死锁!!!

本期分享到此为止,关注博主不迷路,叶秋学长带你上高速~~