LINUX.ORG.RU

Userspace RCU library 0.3.0

 ,


0

0

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

RCU улучшает масштабируемость, давая возможность производить чтение данных из памяти одновременно с обновлением данных в другом потоке. В отличие от других способов синхронизации и блокировки, которые запрещают разным потокам одновременный доступ к данным, независимо от того что именно они делают - читают или пишут, 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
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.