1、上下文切换

上下文定义

cpu发生进程或者线程切换时,所依赖的数据集合,比如一个函数有外部变量,函数运行时,必须获取外部变量,这些变量值的集合就是上下文。

引发问题

对于CPU密集型任务,多线程处理会发生上下文切换,会影响到执行速度,如果时IO密集型,多线程技术优点尽显。

如何减少上下文切换

  • 无锁并发编程,锁的获取与释放会发生上下文切换,多线程时会影响效率。无锁并发编程就是将数据分块,每个线程处理各自模块。比如LongAdder中部分代码。
  • CAS算法,并发编程时通过CAS算法更新数据,而不必加锁。如Java的atomic包下的工具类。
  • 使用最少线程,减少不必要的线程创建,自定义线程池。
  • 使用协程,在单线程中维护多任务调度,处理任务间切换,Golang对于协程的使用很强大。

2、死锁

死锁定义

死锁是进程死锁的简称,是由Dijkstra于1965年研究银行家算法时首先提出来的。
系统发生死锁现象不仅浪费大量的系统资源,甚至导致整个系统崩溃,带来灾难性后果。

产生死锁原因

  • 系统资源不足
  • 进程推进顺序不当
  • 资源分配不合理

死锁产生的必要条件

  • 互斥条件:一个资源只能被一个进程或者线程使用。
  • 请求和保持条件:一个进程或者线程,请求资源的时候发生阻塞,对已经获取的资源保持不放。
  • 不可剥夺条件:进程或者线程以获得的资源,在未使用完成时,不能强行剥夺。
  • 循环等待条件:若干进程或者线程形成一种头尾相接的循环等待的资源关系。

这四分条件是死锁产生的必要条件,只要发生死锁,这些条件必然成立,而只要上述条件之一不满足,就不会发生死锁。

如何避免死锁

  1. 以确定的顺序获得锁
  2. 加锁时限

Lock接口提供了boolean tryLock(long time, TimeUnit unit) throws InterruptedException方法,该方法可以按照固定时长等待锁,因此线程可以在获取锁超时以后,主动释放之前已经获得的所有的锁。

总结

阿里伤透我心,疯狂复习刷题,终于喜提offer 哈哈~好啦,不闲扯了,文章开头说要免费给大家分享我的复习资料,下面就给大家展示一下——点击这里免费获取我的复习刷题宝典

1、JAVA面试核心知识整理(PDF):包含JVMJAVA集合JAVA多线程并发,JAVA基础,Spring原理微服务,Netty与RPC,网络,日志,ZookeeperKafkaRabbitMQ,Hbase,MongoDB,Cassandra,设计模式负载均衡数据库一致性哈希JAVA算法数据结构,加密算法,分布式缓存,Hadoop,Spark,Storm,YARN,机器学习,云计算共30个章节。

2、Redis学习笔记及学习思维脑图

3、数据面试必备20题+数据库性能优化的21个最佳实践

面试必备20题+数据库性能优化的21个最佳实践

[外链图片转存中…(img-FQ0Ec55U-1624931917258)]

javabean是什么意思中文,干货满满!相关推荐

  1. css就近原则_细品100道CSS知识点(上)「干货满满」

    作者:hh_phoebe 转发链接:https://juejin.im/post/5ee0cf335188254ec9505381 目录 细品100道CSS知识点(上)[干货满满]本篇 细品100道C ...

  2. 转载 --史上最全数学符号、公式的英文读法,干货满满!

    在学习数学符号读法时,搜到这篇文章,非常全面,也很风趣,忍不住转载过来,若有不妥, 请联系我. [收藏]史上最全数学符号.公式的英文读法,干货满满! 2018-01-04 11:00 英语 说起英语和 ...

  3. 教你如何零基础学习视频剪辑,干货满满

    5000字长文预警!!! 软件推荐+专业术语解析+视频素材网站分享 教你如何零基础学习视频剪辑,干货满满 那么在推荐视频剪辑软件之前,首先你应该明确自己的制作视频的目的. 是想成为专业剪辑师,从事专业 ...

  4. css为什么要用浮动_细品100道CSS知识点(上)「干货满满」

    作者:hh_phoebe 转发链接:https://juejin.im/post/5ee0cf335188254ec9505381 目录 细品100道CSS知识点(上)[干货满满]本篇 细品100道C ...

  5. Yann Lecun纽约大学《深度学习》2020课程笔记中文版,干货满满!

    关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! [导读]Yann Lecun在纽约大学开设的2020春季<深度学习>课 ...

  6. 苹果手机各种型号图片_2020年12月小米/红米手机推荐|小米/红米手机选购要点|小米/红米手机性价比推荐,干货满满...

    小米手机,一直都是我国著名的手机牌子.小米手机新出了哪些型号?那么小米手机学生党适合哪款?小米手机哪款适合上班族?老人和小孩适不适合用小米手机?首先根据我们的预算,1000以下有什么性价比小米手机推荐 ...

  7. 你可能不知道的Python面试秘籍 干货满满(附带参考答案)上篇

    Q1.Python中的列表和元组有什么区别? 你可能不知道的Python面试秘籍 干货满满(附带参考答案)上篇 Q2.Python的主要功能是什么? Python是一种解释型语言.与C语言等语言不同, ...

  8. 干货满满~阿里天池目标检测保姆级教程

    阿里天池目标检测类比赛入门 1赛前准备 1.1设备 1.2必备技术 1.3相关论文 1.4开源工具 2比赛规则分析 2.1评分指标 2.2模型限制的解决方法 3数据分析 3.1感受野&anch ...

  9. 计算机二级考试干货内容,计算机二级考试经验总结,干货满满!

    原标题:计算机二级考试经验总结,干货满满! 掌握好上机考试的应试技巧,可以使考生的实际水平在考试时得到充分发挥,从而取得较为理想的成绩.历次考试均有考生因为忽略了这一点,加之较为紧张的考场气氛影响了水 ...

  10. 干货满满,Android热修复方案介绍

    摘要:在云栖社区技术直播中,阿里云客户端工程师李亚洲(毕言)从技术原理层面解析和比较了业界几大热修复方案,揭开了Qxxx方案.Instant Run以及阿里Sophix等热修复方案的神秘面纱,帮助大家 ...

最新文章

  1. linux下解压缩文件中文乱码问题的解决
  2. threejs加载obj模型_Vulkan编程指南(章节31-载入模型)
  3. 使用maven工程实现Mybatis自动生成Mapper文件
  4. 最简单人工智能python_Python人工智能之路 - 第四篇 : jieba gensim 最好别分家之最简单的相似度实现...
  5. python实现gif动画(matplotlib、imageio、pillow))
  6. 《细胞》突破性成果!北京林业大学钮世辉等解开“中国松”基因密码
  7. 本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/jinjazz/archive/2009/04/29/4138000.aspx...
  8. Hadoop 之 Distcp官网介绍和注意事项
  9. STC学习:振动传感器
  10. Unity VideoPlayer组件一个接一个的播放视频
  11. 使用wireshark抓取qq好友ip地址
  12. 如何用Web Scraper抓取巨潮资讯网全站乐视相关pdf文件
  13. 安恒月赛-dasctf 部分writeup
  14. 计算机图形学-油画家算法
  15. Lua 实现Get Set属性
  16. 读 联想:去尖刀上跳舞!有感
  17. 【58沈剑架构系列】一分钟了解负载均衡的一切
  18. js中对数组的增删方法:push(),pop(),unshift(),shift(),splice()的用法小结
  19. 家电售后服务外包维修模式,该如何管理
  20. 642-825 认证题库

热门文章

  1. BeagleBone 可编程实时单元(PRU)控制 GPIO 和 UART
  2. 音乐网站要什么服务器,告诉你怎么样去做一个音乐网站
  3. 云栖小镇通勤车_云栖大会来啦!云栖小镇怎么走 杭州交警告诉你
  4. Java代码易错问题
  5. putty连接Window并使用
  6. 海思系列量产硬件调试记录
  7. gitLab 分支受保护设置
  8. python模块cv2人脸识别_手把手教你使用OpenCV,Python和深度学习进行人脸识别
  9. 【BigHereo 11】-----JobReview Team Recall
  10. 神策数据荣获“MarTech 领域最具商业合作价值企业”称号