多線程里面,大家一定不會忘記有死鎖這個概念。大家都知道,死鎖就是2個線程,互相等待對方的資源,一直不能往下執行。下面我用簡單的用java代碼寫一個死鎖。
public class Main{ PRivate Object o1 = new Object(), 02 = new Object(); public static void main(String [] args){ Main m = new Main(); new Thread(){ public void run(){ synchroized(m.o1){ synchroized(m.o2){ System.out.println(Thread.getCurrentName()); } } } }.start(); new Thread(){ synchroized(m.o2){ synchroized(m.o1){ System.out.println(Thread.getCurrentName()); } } }.start(); }}解決死鎖的方案就是要執行順序不出現互相等待的情況,出現了這種情況需要你讓我退這種。就好像一條只能容一輛車過路的橋,如果兩輛完全方向相反的車,是不是勢必就有一輛需要退出一條道讓他先過呢,道理是一樣的。
新聞熱點
疑難解答