messages
barrier
適用于分布式系統(tǒng)
Message
消息機(jī)制是利用 原子的消息傳遞 解決進(jìn)程間通信和同步問題的機(jī)制。
兩個(gè)原語(yǔ):
- send(destination, &message);
- receive(source, &message);
相應(yīng)會(huì)有的問題:
- 信息和動(dòng)作的丟失
- 消息的順序
- 命名
- 消息的真實(shí)性和可靠性
使用message解決生產(chǎn)者消費(fèi)者問題
#define N 100
void producer(void){
int item;
message m;
while(TRUE) {
item = produce_item();
receive(consumer, &m);
build_message(&m, item);
send(consumer, &m);
}
}
void consumer(void){
int item, i;
message m;
for(i = 0; i < N; i++) send(producer, &m);
while(TRUE) {
receive(producer, &m);
item = extract_item(&m);
send(producer, &m);
consume_item(item);
}
}
Barrier機(jī)制
Paste_Image.png
barrier機(jī)制是為了實(shí)現(xiàn)如上圖所示惫周,所有進(jìn)程到達(dá)barrier才能繼續(xù)進(jìn)行的機(jī)制蕊肥。