Главная страница


ru.algorithms

 
 - RU.ALGORITHMS ----------------------------------------------------------------
 From : Sergey Andrianov                     2:5020/1507.400 16 Mar 2003  17:51:40
 To : Slava Astashonok
 Subject : Re: списки, деревья и multithreading
 -------------------------------------------------------------------------------- 
 
 
 Однажды 15-Mar-03  в 17:12   Slava Astashonok (via gate)
 написал       All    по поводу
 -=-   списки, деревья и multithreading  -=-
 
 SA> Может кто-нибудь поделиться опытом борьбы с динамическими списками и 
 SA> деревьями в многопотоковых программах, в которых несколько нитей могут 
 SA> одновременно добавлять/удалять данные? Kакие именно проблемы при этом 
 SA> возникают я поясню на примере: предположим, наши данные представлены 
 SA> двусвязным списком и некоторая нить удаляет элемент n, связанный с n-1 и 
 SA> n+1. В первую очередь эта нить должна блокировать элемент n, а так как 
 SA> она будет модифицировать указатели в элементах n-1 и n+1, то ей еще 
 SA> нужно будет блокировать и эти элеметы. Предположим, что в этот момент 
 SA> другой нити вздумалось удалять элемент  n-1: она заблокировала его, n-2 
 SA> и остановилась при попытке блокировки n (он уже заблокирован). Первая 
 SA> нить продолжает работу и останавливается при попытке блокировки n-1. 
 SA> Получили deadlock.
 
 SA> Сейчас я использую способ, заключающийся в хранении данных в нескольких 
 SA> независимых списках, и блокирую любой из них по мере необходимости, 
 SA> однако я этим неудовлетворен. Тем более, что в дальнейшем списки я хочу 
 SA> заменить сбалансированным деревом. Hаклевывается еще один способ, но я с 
 SA> ним пока подожду.
 
   А почему ты считаешь, что блокирование n-1, n и n+1 элемента - это три
 отдельные операции?
   Осуществлять все манипуляции над данными должно единственное ядро, а разные
 потоки только обращаются с запросами на изменение к этому ядру, но
 непосредственно к самим данным доступа не имеют. 
 
                   До свидания,  в  16:48 MSK
                                  Sergey
 
 ---
  * Origin: Sergiev Posad (2:5020/1507.400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 списки, деревья и multithreading   Slava Astashonok   15 Mar 2003 18:12:13 
 списки, деревья и multithreading   Nick Poroshin   16 Mar 2003 01:28:59 
 Re: списки, деревья и multithreading   Vitaly Lugovsky   16 Mar 2003 04:39:42 
 Re: списки, деревья и multithreading   Slava Astashonok   16 Mar 2003 04:08:25 
 списки, деревья и multithreading   Alex Cvetkov   17 Mar 2003 02:23:01 
 Re: списки, деревья и multithreading   Slava Astashonok   17 Mar 2003 17:43:09 
 Re: списки, деревья и multithreading   Vitaly Lugovsky   17 Mar 2003 07:34:03 
 Re: списки, деревья и multithreading   Slava Astashonok   17 Mar 2003 18:48:38 
 Re: списки, деревья и multithreading   Sergey Andrianov   16 Mar 2003 17:51:40 
 Re: списки, деревья и multithreading   Slava Astashonok   19 Mar 2003 00:33:46 
 Re: списки, деревья и multithreading   Sergey Andrianov   26 Mar 2003 10:05:46 
Архивное /ru.algorithms/52053E74AB9C.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional