色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

baci定理

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

baci定理?

Baci定理

C語言中的平臺

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

基本介紹

BACI提供了一個可以編寫并發程序的環境,在這個平臺上,我們可以很容易的模擬程序的并發執行。

基于C++的BACI語法(C—BACI Compiler)該語法結構是在C++語法結構的基礎上,增加一些并發語句擴展而來,一下是一些常用的并發語句

1. cobegin函數

在BACI系統中,并發進程與并發線程同步,多個進程可以并發的在cobegin 塊中來并發執行,該函數必須在主函數中,語法結構為:cobegin {

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

其中每個進程并發隨機執行,每次執行的順序可能會不一樣,當所有的進程接受后,該函數結束。

2. Semaphores/Binarysem

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

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

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

Initialsem(semaphores , interger);

Initialsem(binarysem , 0/1);

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

函數原型:

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

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

函數說明:

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

3.atomic

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

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

4.void suspend(void)suspend函數將調用的線程掛起

5.void revive (int process_number)

該函數用于喚醒某個進程,其進程號為process_number

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