Reference: https://time.geekbang.org/column/article/85702

 

饥饿:线程因无法访问所需资源而无法执行下去的情况。

 

“不患寡,而患不均”,如果线程优先级“不均”,在CPU繁忙的情况下,优先级低的线程得到执行的机会很小,就可能发生线程“饥饿”;持有锁的线程,如果执行的时间过长,也可能导致“饥饿”问题。

 

解决“饥饿”问题的方案很简单,有三种方案:一是保证资源充足,二是公平地分配资源,三就是避免持有锁的线程长时间执行。这三个方案中,方案一和方案三的适用场景比较有限,因为很多场景下,资源的稀缺性是没办法解决的,持有锁的线程执行的时间也很难缩短。倒是方案二的适用场景相对来说更多一些。

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-12-31
  • 2022-12-23
  • 2021-08-26
  • 2021-11-04
  • 2021-05-23
猜你喜欢
  • 2021-07-07
  • 2022-12-23
  • 2021-06-21
  • 2021-07-29
  • 2021-06-30
  • 2021-05-05
  • 2022-03-05
相关资源
相似解决方案