/*
* 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,分別指向生產者使用的空緩衝區和消費者使用的滿緩...