Liveness:
并发程序及时执行运算的能力。
分为:
deadlock:两个线程永远被阻塞,都再等着对方进行某种行为。
starvation:线程无法正常获取共享资源,无法再向下进行。这通常发生在,类提供了一个要很长时间才能返回的synchronized 方法,两个线程又都需要调用这个方法。
livelock:一个线程在另一个线程有某种反馈才采用进一步行动,而另一个线程也是这样。和deadlock 不一样的地方是livelock无法进行更远的方法,没有阻塞。例如:过一个通道,a给b让路躲到路的一边,同时b也给a让路也躲到这一边,无法两个人都无法通过。然后他们又都躲到另一边。然后。。。。。。