java基础

一、阻塞队列:
https://mp.weixin.qq.com/s?__biz=Mzg2MDYzODI5Nw==&mid=2247494024&idx=1&sn=3ed3c448aaaabd9c5a85396439f2f628&source=41#wechat_redirect
二、多线程

  • 线程池七个参数
    https://blog.csdn.net/ye17186/article/details/89467919
  • 怎么设置线程数?
    https://mp.weixin.qq.com/s/ZktmvL-UhaOz-ssSQk7UAQ
  • 多线程死锁的产生以及如何避免死锁
    产生死锁的条件:
    **互斥:**至少有一个资源必须处在非共享模式,即一次只能有一个进程使用,如果另一进程申请该资源,那么申请进程必须延迟直到该资源释放为止。
    **占有并等待:**进程已经保持了至少一个资源,但又提出了新的资源请求,而该资源 已被其他进程占有,此时请求进程被阻塞,但对自己已获得的资源保持不放。
    **非抢占:**资源不能被抢占,进程所获得的资源在未使用完毕之前,不能被其他进程强行夺走,即只能 由获得该资源的进程自己来释放(只能是主动释放)。
    **循环等待:**有一组进程{P0,P1,…Pn},P0等待的资源被P1占有,P1等待的资源被P2占有,Pn-1等待的资源被Pn占有,Pn等待的资源被P0占有。
    形成死锁必须要满足这四个条件。那么违背这几个条件中的任何一个就不会形成死锁,这种方式成为 死锁预防,而死锁避免是动态的检测分配资源的状态是否安全。
  • 死锁解决方式
  • 死锁预防
  • 死锁避免
  • 死锁检测并恢复
    三者处理死锁的方式可以类比为:死锁预防,直接铲平坑;死锁避免,直接跳过坑;死锁检测并恢复,摔到坑里,修正一下继续前行。
    对于互斥而言:有的资源本身就是互斥的,所以通常无法破坏这一必要条件。
    对于占有并等待:破坏它,可以指定这样的规则(协议):每一个进程执行前一次性申请完所有资源。或者 每个进程申请当前所需要的资源,当需要使用其他资源时,需要把之前申请的资源释放掉。前者可以理解为破坏等待,后者可以理解为破坏占有。这样做使得资源得利用率很低(最后阶段可能需要用一下打印机,而将其在整个运行期占有);对于优先级低得进程来说,多次释放资源很容易造成它们饥饿。
    对于非抢占:破坏它,即对于已经分配的资源可以进行抢占。当一个优先级比较低,那么它的资源往往会被优先级高得剥夺,导致它饥饿。
    对于循环等待:对所有资源类型进排序,要求每个进程按照资源编号递增顺序申请资源。

1、避免多次锁定
2、具有相同的加锁顺序。
3、使用定时锁
4、死锁检测 jstack命令、jdk提供的工具:jconsole、visualvm

三、事务传播机制
https://blog.csdn.net/weixin_39625809/article/details/80707695
四、一致性哈希
内含实现代码:
https://blog.csdn.net/suifeng629/article/details/81567777
五、Spring
1、获取bean三种方式
https://mp.weixin.qq.com/s/rfh2BmICnClR6lhIG541Iw
2、Springboot自动装配原理
https://mp.weixin.qq.com/s/2Qu31COBW1tBYZ4Pa-n_Dw
https://mp.weixin.qq.com/s/JVBsspx_Dg3aAX7yEU_AFA
3、Spring 循环依赖如何解决
Spring循环依赖
4、springboot异步调用
5、springclould配置中心

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值