JAVA學習筆記 四十二 生產者消費者模型

2021-06-29 10:58:19 字數 1193 閱讀 5491

/*

* wait()、notify()

* * 1.兩個方法都只能在synchronized**塊中執行,因為要對持有鎖的執行緒操作,只有同步中才有鎖

* 2.兩個方法在操作同步中的執行緒時,必須要標識所操作執行緒持有的物件鎖

* 3.等待和喚醒必須是同乙個物件鎖

*/public

class

test05 catch (interruptedexception e)

//打斷處於mt物件的等待池中的執行緒th

synchronized (mt)

}}class

mythread3

implements

runnable catch (interruptedexception e)

for(int i=1;i<=20;i++)

system.out.println("***同步**塊執行結束!");}}

}

/*

* 執行緒間通訊:多個執行緒操作同乙個資源,但操作的動作不同

* 生產者、消費者模型

* wait()和notify()方法一般應用於生產者和消費者模型中,用來等待同步資料

*/public

class

test06

}class

person

// 生產、入

class

input

implements

runnable

@override

public

void run() else

x = (x + 1) % 2; // 間隔產生不同的人

person.flag = false;// 放一次,取一次

person.notify();//喚醒取人的執行緒

} else catch (interruptedexception e) }}

}}

}// 消費、出

class

output

implements

runnable

@override

public

void run() else catch (interruptedexception e) }}

}}

}

C 學習筆記四十二 函式過載

函式多型 函式過載 使我們能夠使用多個同名的函式。多型 是指有多種形式。函式多型允許函式有多種形式,函式過載是指可以有多個同名的函式,對名稱進行了過載。這兩個術語指的是同一件事。可以通過函式過載來設計一系列函式 它們完成相同的工作,但使用不同的引數列表。函式過載的關鍵是函式的引數列表 也成為函式特徵...

生產者 消費者問題學習筆記

問題描述 有乙個或多個生產者生產出某種型別的資料,並將其放置在快取區中 有乙個消費者從快取區中取資料,每次取一項 在任何時刻只有乙個消費者或者生產者可以訪問快取區 當快取區已滿時,生產者不會繼續向其中新增資料 當快取區為空時,消費者不會從中移走資料。1 使用二元訊號量解決無限緩衝區生產者 消費者問題...

OS學習筆記 生產者消費者問題

緩衝池是臨界資源,因此需要為其設定乙個互斥訊號量mutex。此外,為了讓生產者和消費者都能正確使用空 滿緩衝區,還需要設定兩個資源訊號量empty和full,empty和full的初值分別為n和0.在程序選擇緩衝區時,還需要使用兩個特殊指標in和out,分別指向生產者使用的空緩衝區和消費者使用的滿緩...