- <blockquote>class Test implements Runnable
复制代码
额,我理解的是:肉就是线程要操作的资源,线程就是人,筷子就是线程锁(一根筷子代表一个);筷子只有一双肉只有一块,而人有多个,人要吃肉就必须要一双筷子,当两个线程锁交叉锁住同意资源时(上面代码所展示的),假设当t1线程运行true拿到a锁要进b锁的时候t2线程拿到b锁要进a锁;由于此时t1,t2都拿到了其中不同的锁想要进另一个;就会产生死锁,线程就无法继续执行(因为拿不到相应的锁),就会导致程序停在那;就好比那个人都想拿到那双筷子去吃那块肉,而一人只有一只,又不想给对方.
以上就是我的理解,希望能帮到楼主.
|