Выборочная синхронизация потоков.

Тема в разделе "WASM.BEGINNERS", создана пользователем Sercher, 27 июн 2011.

  1. Sercher

    Sercher New Member

    Публикаций:
    0
    Регистрация:
    11 фев 2008
    Сообщения:
    59
    Да после вашего ответа на мой пост что я уже ответил на его пост я заметил ваш старый пост и пишу ответ на ваш новый пост :),
    Уговорил поднимать АСУТП только на ПК с вин 7. Посему использую slim r/w lock, и cond. var. вместо эвентов, так что почти избавился от обьектов ядра что дало прибавку в скорости. Спасибо за помощь.
     
  2. klzlk

    klzlk New Member

    Публикаций:
    0
    Регистрация:
    2 июн 2011
    Сообщения:
    449
    Sercher
    Заюзайте SRWL на XP :lol:
     
  3. Andrzej

    Andrzej New Member

    Публикаций:
    0
    Регистрация:
    2 ноя 2008
    Сообщения:
    11
    ReadThread's lifecycle:
    Код (Text):
    1. while (isLocked);
    2. try {
    3.     lock add threadCounter, 1;
    4.     if (carry) throw Exception;
    5.     ... <atomic read> ...
    6. } finally {
    7.     lock sub threadCounter, 1;
    8. }
    WriteThread's lifecycle:
    Код (Text):
    1. mov isLocked, TRUE;
    2. while (threadCounter != 0);
    3. ... <atomic modify> ...
    4. mov isLocked, FALSE;