The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Блокировки чтения-записи (pthread_rwlock) в posix"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"Блокировки чтения-записи (pthread_rwlock) в posix" 
Сообщение от Excepter emailИскать по авторуВ закладки on 30-Дек-05, 19:26  (MSK)
Товарищи! Нуждаюсь в помощи.

Есть темка написать прогу, эмулирующую активность банковского счета: в случайное время производится снятие денег со счета, перевод на другой счет или вклад. Это должно реализоваться с использованием блокировок чтения-записи. (pthread_rwlock_rdlock, pthread_rwlock_wrlock, pthread_rwlock_rdlock_unlock).

  Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]

1. "Блокировки чтения-записи (pthread_rwlock) в posix" 
Сообщение от Excepter emailИскать по авторуВ закладки on 02-Янв-06, 20:07  (MSK)
>Товарищи! Нуждаюсь в помощи.
>
>Есть темка написать прогу, эмулирующую активность банковского счета: в случайное время производится
>снятие денег со счета, перевод на другой счет или вклад. Это
>должно реализоваться с использованием блокировок чтения-записи. (pthread_rwlock_rdlock, pthread_rwlock_wrlock, pthread_rwlock_rdlock_unlock).

Ладно нафиг задачу. Просто расскажите, как использовать эти блокировки?
Конкретно такой вопрос:
Предположим есть два потока в процессе. Один из них назовем Чтецом (Ч), другой - Писцом (П)/ Пусть они имеют одинаковй приоритет (сеткокаренси(2)). При выполнение программы процесс П блокирует некую общую для этих процессов (П и Ч) переменную на запись на некоторое время. В этот момент к общей переменной хочет получить доступ на чтение процесс Ч, но естественно будет заблокирован, т.к. процесс П уже захватил общую переменную на запись. Вопрос: будет ли процесс Ч дожидаться разблокировки процессом П общей переменной, и после разблокировки снова пытаться получить доступ, или он так и останется заблокированным?

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "Блокировки чтения-записи (pthread_rwlock) в posix" 
Сообщение от DeadMustdie emailИскать по авторуВ закладки(??) on 02-Янв-06, 22:53  (MSK)
>Ладно нафиг задачу. Просто расскажите, как использовать эти блокировки?
>Конкретно такой вопрос:
>Предположим есть два потока в процессе. Один из них назовем Чтецом (Ч),
>другой - Писцом (П)/ Пусть они имеют одинаковй приоритет
>(сеткокаренси(2)). При
>выполнение программы процесс П блокирует некую общую для этих
>процессов (П
>и Ч) переменную на запись на некоторое время. В этот момент
>к общей переменной хочет получить доступ на чтение процесс Ч, но
>естественно будет заблокирован, т.к. процесс П уже захватил общую переменную на
>запись. Вопрос: будет ли процесс Ч дожидаться разблокировки процессом П общей
>переменной, и после разблокировки снова пытаться получить доступ, или
>он так
>и останется заблокированным?

Расшифровка вопроса, видимо, такая: если в этом упражнении есть ещё один участник (назовём его У), который придёт после захвата блокировки П и после начала попытки захвата блокировки Ч, кто в итоге получит блокировку?

Ответ: кое-что зависит от реализации и (иногда) выставленных настроек. Если У попытается захватить блокировку на запись, большинство реализаций отдаст предпочтение У. В противном случае всё зависит от того, с какой ноги сегодня встал системный планировщик.

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх


Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру