欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

baci定理

錢淋西2年前14瀏覽0評論

baci定理?

Baci定理

C語言中的平臺

BACI是一個可以編寫并發(fā)程序的環(huán)境,在這種并行的編譯環(huán)境中,可以把BACI中的一些語句嵌入到C++,C,Java等高等程序中,使程序可以并行執(zhí)行。

基本介紹

BACI提供了一個可以編寫并發(fā)程序的環(huán)境,在這個平臺上,我們可以很容易的模擬程序的并發(fā)執(zhí)行。

基于C++的BACI語法(C—BACI Compiler)該語法結(jié)構(gòu)是在C++語法結(jié)構(gòu)的基礎(chǔ)上,增加一些并發(fā)語句擴(kuò)展而來,一下是一些常用的并發(fā)語句

1. cobegin函數(shù)

在BACI系統(tǒng)中,并發(fā)進(jìn)程與并發(fā)線程同步,多個進(jìn)程可以并發(fā)的在cobegin 塊中來并發(fā)執(zhí)行,該函數(shù)必須在主函數(shù)中,語法結(jié)構(gòu)為:cobegin {

proc1(...);proc2(...);. . . . procN(...);}

其中每個進(jìn)程并發(fā)隨機(jī)執(zhí)行,每次執(zhí)行的順序可能會不一樣,當(dāng)所有的進(jìn)程接受后,該函數(shù)結(jié)束。

2. Semaphores/Binarysem

信號量的(Semaphores)機(jī)制可以更方便的實現(xiàn)進(jìn)程同步,Semaphores是一種如C中”int”一樣的類 型,可以用來定義信號量類型的變量,Binarysem是一種二進(jìn)制信號量,它所定義的變量只能取1或 0,用來表示互斥。

1).信號量的聲明和初始化semaphores a;binarysem s;

上面聲明了兩個信號量a,b,其中b為二進(jìn)制信號量信號量按如下方式初始化:

Initialsem(semaphores , interger);

Initialsem(binarysem , 0/1);

2)P(wait)/V(signal)函數(shù)強大的PV操作與信號量一次很方便的解決了并發(fā)進(jìn)程同步與互斥問題

函數(shù)原型:

void p(semaphores &s); or void wait(semaphores &s);

void v(semaphores &s); or void signal(semaphores &s);

函數(shù)說明:

p(sem): 如果sem > 0,則sem減1,調(diào)用P的進(jìn)程可以繼續(xù)執(zhí)行,如果sem=0,則該進(jìn)程阻塞,該函數(shù)操作是原子性的.v(sem): 如果v=0,或有進(jìn)程阻塞,則將其喚醒,如果沒有進(jìn)程等待,將sem加1,在任何時候調(diào)用v的進(jìn)程可以繼續(xù)執(zhí)行,其操作也是原子的.

3.atomic

atomic關(guān)鍵字定義了原子操作,即該函數(shù)操作不可剝奪,每次只能一個進(jìn)程訪問用法:在要原子執(zhí)行的函數(shù)前加atomic即可,如:atomic int sum(){. . . ..}

則sum()函數(shù)就可以原子操作了

4.void suspend(void)suspend函數(shù)將調(diào)用的線程掛起

5.void revive (int process_number)

該函數(shù)用于喚醒某個進(jìn)程,其進(jìn)程號為process_number

java 什么是原子操作,baci定理