多執行緒設計模式基礎

2021-08-08 22:59:31 字數 3241 閱讀 3552

public

final

class

product

//....生成get()方法

}

不變模式的例子:

string

boolean

byte

character

double

float

integer

long

short

public

inte***ce

data

//futuredata

public

class

futuredata

implements

data

public

synchronized string getresult()catch(exception e)

}return realdata.result;

}}

public

class

realdata

implements

data

result = sb.tostring();

}public string getresult()

}

public

class

client

}.start();

return future; //futuredata會被立即返回

}}

package future;

public

class

main catch (interruptedexception e)

//使用真實的資料

system.out.println("資料 = "+data.getresult());

}}

在其中,使用了裝飾者設計模式(realdata和futuredata之間)

main系統系統,呼叫client發出請求

client:返回data物件,立刻返回futuredata物件,並且開啟執行緒去獲取realdata

data:返回資料的介面

futuredata:虛擬資料,返回很快,需要裝載realdata。

realdata:真實資料。

餓漢模式

public

class

singleton

private

static singleton instance = new singleton();

private

static singleton getsingleton()

}優點:執行緒安全

缺點:無法控制例項何時產生

懶漢模式

public

class

lazysingleton

private

static lazysingleton instance = null;

public

static

synchronized lazysingleton getinstance()

}

執行緒不安全,訪問需要鎖。

執行緒安全不加鎖的懶漢模式

public

class

staticsingleton

/** 定義乙個靜態內部類,用來例項化單例物件

* */

private

static

class

singletonholder

public

static staticsingleton getinstance()

}

生產者產生資料,消費者消耗資料。

步驟

第一步:在外界設定乙個物件,通過建構函式傳送個給生產者。

第二步:生產者設定物件內容

第三步:消費者獲取資料內容

main方法設定乙個物件

public

class studentdemo

}

student類

public

class

student catch (interruptedexception e)

}//設定資料

this.name = name;

this.age = age;

//修改標記

this.flag = true;

//通知消費者

this.notify();

}public

synchronized

void

get() catch (interruptedexception e)

}//獲取資料

system.out.println(this.name + "---" + this.age);

//修改標記

this.flag = false;

this.notify();

}}

消費者

public

class

getthread

implements

runnable

public

void

run()

}}

生產者

public

class

setthread

implements

runnable

@override

public

void

run() else

x++;}}

}

多執行緒設計模式

呼叫類 public class main 介面 public inte ce data 包裝類 public class futureclient start return futuredata 真實資料處理類 public class realdata implements data catch...

多執行緒設計模式

所謂 single threaded execution 即 以乙個執行緒執行 該模式用於設定限制,以確保同一時間內只讓乙個執行緒執行處理。immutable模式中存在著確保例項狀態不發生改變的類 immutable類 在訪問這些例項時並不需要執行耗時的互斥處理,因此若能巧妙利用該模式,定能提高程式...

多執行緒 多執行緒 單例設計模式

多執行緒之 單例設計模式 餓漢式 多執行緒安全 1 餓漢式 class single static single getinstance public void show class a implements runnable class test catch interruptedexceptio...