ВУЗ:
Составители:
76
void* WriteToFile(void*);
int errno;
sem_t psem;
ofstream qfwrite;
int main(int argc, char **argv) {
pthread_t tidA,tidB;
int n;
char filename[] = "./rezult.txt";
qfwrite.open(&filename[0]);
sem_init(&psem,0,0);
sem_post(&psem))
pthread_create(&tidA,NULL,&WriteToFile,(void*)100));
pthread_create(&tidB,NULL,&WriteToFile,(void*)100));
pthread_join(tidA,NULL));
pthread_join(tidB,NULL));
sem_destroy(&psem));
qfwrite.close();
}
void* WriteToFile(void *f){
int max = (int)f;
for (int i=0; i<=max; i++)
{
sem_wait(&psem);
qfwrite<<pthread_self()<<"-writetofilecounter i="<<i<<endl;
qfwrite<<flush;
sem_post(&psem);
}
return NULL;
}
Пример многопоточной программы с синхронизацией с использо-
ванием условных переменных. Ниже приведен фрагмент программы,
использующей семафоры для синхронизации записи (writer) и чтения
(reader) данных в буфер data и из него, емкость буфера – одна запись.
#include "main.h"
#include <iostream.h>
#include <semaphore.h>
#include <fstream.h>
#include <stdio.h>
#include <error.h>
Страницы
- « первая
- ‹ предыдущая
- …
- 74
- 75
- 76
- 77
- 78
- …
- следующая ›
- последняя »