LINUX.ORG.RU

Userspace RCU library 0.3.0

 ,


0

0

liburcu - это библиотека под лицензией LGPLv2.1, позволяющая использовать механизм RCU (Read-Copy Update) для синхронизации доступа к данным.

RCU (wikipedia.org) улучшает масштабируемость, давая возможность производить чтение данных из памяти одновременно с обновлением данных в другом потоке. В отличие от других способов синхронизации и блокировки, которые запрещают разным потокам одновременный доступ к данным, независимо от того что именно они делают - читают или пишут, RCU позволяет работать одновременно нескольким читающим потокам и одному пишущему, сохраняя при этом целостность данных.

Ссылки: информация об RCU, скачать liburcu.

>>> Подробности (сообщение о релизе 0.3.0)

Deleted

Проверено: svu ()
Хорошая новость!Очень полезная штука.
anonymous
()
Ответ на: комментарий от Eugeny_Balakhonov
> без особого напряга еще в 98-м году.

Да ты крутой! «… 1) H. T. Kung and Q. Lehman described use of garbage collectors to implement RCU-like access to a binary search tree in the September 1980 issue of ACM Transactions on Database Systems.
…
3) J. Hennessy, D. Osisek, and J. Seigh were granted US Patent 4,809,168 in 1989 (since lapsed). This patent describes an RCU-like mechanism that was apparently used in VM/XA on IBM Mainframes.

…» © wiki
poige ★
()
Ответ на: комментарий от Eugeny_Balakhonov
> Странно. Я такие вещи под вынь в Visual Studio 6 проделывал без особого напряга еще в 98-м году.

Нука расскажи как? В .NET до сих пор для объектов которые не thread-safe единственный путь это ReaderWriterLock

anonymous
()
Ответ на: комментарий от Eugeny_Balakhonov
> Странно. Я такие вещи под вынь в Visual Studio 6 проделывал без особого напряга еще в 98-м году.

На эту штуку у IBM патент, безвозмездно его отдали _только_ для ядра Linux (поэтому, кстати, раньше эта штука была Linux-only)

anonymous
()
В ядре имеецо реализация, для сетевого стека очень нужная штука
Lomaster
()
хм, интересно. то есть как я понимаю можно вообще забыть про использование критических секций?
al_t
()
Ответ на: комментарий от al_t
> хм, интересно. то есть как я понимаю можно вообще забыть про использование критических секций?

В определенных случаях - да. Читайте доки чтоли

Lomaster
()
странная новость, звучит вроде "в юзерспэйс доступна библиотек спинлоков"
gavv
()
Ответ на: комментарий от Eugeny_Balakhonov
> Странно. Я такие вещи под вынь в Visual Studio 6 проделывал без особого напряга еще в 98-м году. Ну так тыж марсианин!!!! Уже и коменты тут постишь.....
anonymous
()
Ответ на: комментарий от anonymous
> На эту штуку у IBM патент, безвозмездно его отдали _только_ для ядра Linux (поэтому, кстати, раньше эта штука была Linux-only)

в QT4 уже сто лет как - impliced sharing

zyoung ★
()
11 декабря 2009 г.
Ответ на: комментарий от shanechko

Вывод что делать каждый класс thread-safe было бы избыточно... и жестко ударило бы по производительности... ибо всякие мьютексы это накладно, а порой в приложении между потоками разделяются всего пару объектов из сотни существующих и не нуждающихся в блокировках =)

в Qt почти все классы рентабельны - и это более чем достаточно! Ибо позволяет делать эффектную блокировку только когда данные надо записать.

Зы по теме: иногда менее ресурсоемко заблокировать ресурс и добавить или удалить данные чем делать копию изменять и потом подменять.

Да и такие приемы действительно некоторые люди уже давно делали... возможно и в 98 =)

anonymous
()
Вы не можете добавлять комментарии в эту тему: топик перемещен в архив.