• 死锁:是指两个或两个以上的进程(或线程)在执行过程中,因争夺资源而造成的一种相互等待的现象,若无外力作用,他们将无法推进下去;
  • 活锁:是指两个线程优先级相同,都礼让不走,就这样一直僵持下去;
  • 饿死:在单线程情况下,A、B两个线程,A先执行;A在执行过程中,C线程来了,B让C先执行;C在执行过程中,D线程来了,B也让D先执行,就这样B一直都是等待状态。
  • 竞态条件:多个线程竞争同一个变量,导致数据的不正确性,线程的访问顺序是不可控的,会影响最终的结果。

产生死锁的必要条件:

1、互斥使用(资源独占)

  一个资源每次只能给一个进程使用(比如写操作)

2、占有且等待:

  进程在申请新的资源的同时,保持对原有资源的占有

3、不可抢占:

  资源申请者不能强行从资源占有者手动夺取资源,资源只能由占有者自愿释放

4、循环等待:

  A等待B占有的资源,B等待C占有的资源,C等待D占有的资源,..........N等待A的资源,形成一个线程等待回路

最新文章

  1. Spring+SpringMVC+Mybatis大整合(SpringMVC采用REST风格、mybatis采用Mapper代理)
  2. jquery添加光棒效果的各种方式以及简单动画复杂动画
  3. Bomb---hdu5934(连通图 缩点)
  4. 寻找C语言和.NET之间的桥梁
  5. 最新版ffmpeg源码分析
  6. C#中往数据库插入/更新时候关于NUll空值的处理
  7. WPF打印原理,自定义打印
  8. VS中两个常用辅助工具
  9. Antelope 和Barracuda区别
  10. (转)TCP三次握手
  11. jquery 银行卡号验证
  12. WebApi 文件上传
  13. 建立TCP连接的三次握手
  14. 关于Python深浅拷贝
  15. 《软件工程》小组团队项目-小学生四则运算APP(First Sprint)
  16. 下拉框combobox用法&级联餐单
  17. Django 导入css文件,样式不起作用。Resource interpreted as Stylesheet but transferred with MIME type application/x-css
  18. java反射知识点总结
  19. UICollectionViewFlowLayout 的 estimatedItemSize 属性
  20. c# webBrowser清除缓存问题

热门文章

  1. shell流程语句使用介绍
  2. vba 两个表 信息合体一个表格
  3. sql mybatis 使用concat乱码
  4. win10搭建Java环境
  5. Python 解压序列、可迭代对象并赋值给多个变量
  6. urllib2功能说明
  7. spring boot 下 dataTable|pagehelper 组合进行分页 筛选 排序
  8. 运用模逆运算(同余方程)来解决Matlab课上的一道思考题
  9. JavaScript设计模式基础之闭包(终)
  10. 四:SQL语句介绍