Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Синхронизация процессов с использованием активного ожидания

59K
25 апреля 2010 года
RaVieN
1 / / 25.04.2010
Доброго времени суток. Имеется такая программа:
Код:
#include <stdio.h>
#include <direct.h>

#define COUNTER_FILE "counter.txt"
#define SEMAPHORE_FILE "semaphore.txt"

void enter_critical_section(void)
{
    while (mkdir(SEMAPHORE_FILE) == -1)
        ;
}

void leave_critical_section(void)
{
    rmdir(SEMAPHORE_FILE);
}

void simulate_counter(void)
{
    FILE *file;
    int counter;

    enter_critical_section();

    file = fopen(COUNTER_FILE, "r");
    if (file) {
        fscanf(file, "%d", &counter);
        fclose(file);
    } else
        counter = 0;

    ++counter;

    file = fopen(COUNTER_FILE, "w");
    if (file) {
        fprintf(file, "%d", counter);
        fclose(file);
    }

    leave_critical_section();

    printf("Counter = %d\n", counter);
}

int main()
{
    int i;

    for (i = 0; i < 1000; ++i)
        simulate_counter();
    return 0;
}


Необходимо составить такую же программу, только на любом другом языке программирования. Буду благодарен за помощь
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог