Рефераты | Рефераты по информатике, программированию | Блокировки в MS SQL Server 2000 | страница реферата 9 | Большая Энциклопедия Рефератов от А до Я
Большая Энциклопедия Рефератов от А до Я
  • Рефераты, курсовые, шпаргалки, сочинения, изложения
  • Дипломы, диссертации, решебники, рассказы, тезисы
  • Конспекты, отчеты, доклады, контрольные работы

  • Добавленный код выделен. Хочется пояснить одну деталь: так как изменять значение переменной value можно несколько раз, а Commit (или Rollback) вызывать только раз, налицо тот факт, что функция EnterCriticalSection вызывается бОльшее количество раз, нежели LeaveCriticalSection. Это ошибка – в соответствии с документацией количество вызовов функций EnterCriticalSection и LeaveCriticalSection должно совпадать. Поэтому после входа в критическую секцию я проверяю поле RecursionCount, которое устанавливает количество повторных входов потока в критическую секцию.

    ПРИМЕЧАНИЕ

    При работе под ОС семейства Windows 9x это поле не используется и всегда содержит 0, так что приводимый здесь и далее код будет работать только на операционных системах семейства NT.

    Теперь можно определенно сказать, что выведется на консоль в следующем примере:

    unsigned __stdcall thread_proc(void*)

    {

     // Начало второй транзакции

     CProxy& prx = CObject::GetObject(CObject::READ_UNCOMMITTED);

     // Здесь поток будет ожидать примерно 1 сек. До тех пор, пока

     // в главном потоке не будет выполнена строчка prx.Commit();

     prx.value = 20;

     prx.Commit();

     return 0;

    }

    int main(int argc, char* argv[])

    {

     //Начало транзакции с 0 уровнем изоляции

     CProxy& prx = CObject::GetObject(CObject::READ_UNCOMMITTED);

     //Изменение данных

     prx.value = 10;


    Рекомендуем скачать другие рефераты по теме: решебник по физике, украинские рефераты.



    Предыдущая страница реферата | 4  5  6  7  8  9  10  11  12  13  14 |




    Поделитесь этой записью или добавьте в закладки

       




    Категории:



    Разделы сайта




    •