文章目录
线程活跃性问题之–饥饿
- 线程活跃性问题之--饥饿
当线程需要某些资源(通常是CPU资源) , 但却始终获得不到.
造成饥饿的情况:
- 线程的优先级设置得过低
- 有某个线程持有锁, 同时又无限循环而不释放锁
- 某程序始终占用某文件的写锁
对应的解决办法
- 程序中不要设置优先级
- 程序中不要有不释放锁的逻辑错误
线程饥饿的影响: 造成系统的响应性变差. 例如前端浏览器某个线程处理打开图片,播放视频等操作, 此时后台线程负责图片,视频的IO操作等,
如果后台线程把CPU资源全部占用了, 那么前台线程始终得不到执行, 没有响应, 造成用户体验差.
关于线程优先级, 可以参考如下这篇文章 https://blog.csdn.net/qq_33229669/article/details/108307972