zadanko
This commit is contained in:
parent
2a16a2bab6
commit
440c533832
45
zadanie.cm
Normal file
45
zadanie.cm
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
const int N=50;
|
||||||
|
int buffer[N];
|
||||||
|
int write=0;
|
||||||
|
int read=0;
|
||||||
|
binarysem sem;
|
||||||
|
|
||||||
|
void add1(){
|
||||||
|
int i;
|
||||||
|
for(i=1;i<=50;i++){
|
||||||
|
wait(sem);
|
||||||
|
buffer[write]=i;
|
||||||
|
write=(write+1)%N;
|
||||||
|
signal(sem);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void add2(){
|
||||||
|
int i=0;
|
||||||
|
for(i=51;i<=100;i++){
|
||||||
|
wait(sem);
|
||||||
|
buffer[write]=i;
|
||||||
|
write=(write+1)%N;
|
||||||
|
signal(sem);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void get(){
|
||||||
|
int item;
|
||||||
|
int i;
|
||||||
|
for(i=0;i<100;i++){
|
||||||
|
wait(sem);
|
||||||
|
item=buffer[read];
|
||||||
|
read=(read+1)%N;
|
||||||
|
cout<<item<<'\n';
|
||||||
|
signal(sem);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(){
|
||||||
|
initialsem(sem,1);
|
||||||
|
cobegin{
|
||||||
|
add1();add2();get();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user