多執行緒的死鎖和多執行緒下的單例設計模式

2021-07-09 03:40:23 字數 1048 閱讀 7260

多執行緒的單例設計模式

//餓漢式

class single

public

static single getinstance()

}//懶漢式

class single2

public

static single2 getinstace2()

}return s;

}}public

class

thread21_1

}

多執行緒的死鎖

死鎖的常見情景之一:同步的巢狀:有鎖a和鎖b。需要a,b同時才能執行好一段**。在多執行緒的情況下。就2個執行緒。當執行緒1拿住a鎖的同時想拿b鎖。但是,這個時候,執行緒2拿住b鎖想拿a鎖。他們的**都沒有做完,彼此都不放自己手上的鎖。這個時候,執行緒1和執行緒2都不能做自己想做的事情,就死鎖了。

例項一

class

ticket

implements

runnable

}}else}}

public synchronized void show() catch (interruptedexception e)

system.out.println(thread.currentthread().getname()+"....sale...."+ num--);}}

}}public

class

thread22_1 catch (interruptedexception e)

t.flag=false;

t2.start();

}}

例項二

class

test

implements

runnable

public

void run()

}}else}}

}}class

mylock

public

class

thread22_2

}

多執行緒下的單例

1多執行緒安全單例模式一 不使用同步鎖 1 1 public classsingleton 4 4 private staticsingleton singleton 5 5 6 6 public staticsingleton getinstance 7 7 12 12 returnsinglet...

單例和多執行緒

單例模式,最常見的就是飢漢模式和懶漢模式,乙個是直接例項化物件,乙個是在呼叫方法時進行例項化物件。在多執行緒模式中,考慮到效能和安全問題,我們一般選擇下面兩種比較經典的單例模式 1.靜態內部類 package com.aruisi.innofarm 靜態內部類 author zmk public c...

多執行緒下的單例模式

單例模式分為兩種 懶漢單例模式和餓漢式單例模式 public class singleton private static singleton single null public static singleton getinstance return single 在單執行緒中,這樣寫,不會存在任...