并发问题
- 数据竞争
- 死锁
- 活锁
- 资源不足(饿死)
- 优先权反转
数据竞争
死锁
- 四个条件
- 资源 只能互斥使用(一个资源每次只能被一个进程使用)
- 请求者 不剥夺条件(进程已获得的资源,在末使用完之前,不能强行剥夺)
- 请求与保持条件 (若干进程因请求资源而阻塞时,对已获得的资源保持不放)
- 循环等待条件 (若干进程之间形成一种头尾相接的循环等待资源关系)
- 日常开发,怎么避免出现死锁现象
- 数据库出现死锁
- 数据更新顺序保持一致(推荐)
- 不放在同一事务处理(这就需要补偿机制保证数据一致性)
- jvm出现的死锁
- 封装到一个类中(也就是使用管程的方式)
- 无锁的方式(乐观锁去操作)
- 数据库出现死锁
资源不足(饿死)
- 使用公平锁呗
- 或者优化锁,使得尽量公平
优先权反转
当一个低优先权的任务持有了一个高优先级任务所需的资源时,就会发生优先权反转。这样的话,
低优先权的任务就会在高优先权的任务之前执行。
标签:优先权,java,反转,并发,死锁,使用,进程,资源 来源: https://www.cnblogs.com/cgengwei/p/16651639.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。