Показаны сообщения с ярлыком atomic. Показать все сообщения
Показаны сообщения с ярлыком atomic. Показать все сообщения

четверг, 15 октября 2009 г.

Классическая статья по STM.

Language Support for Lightweight transactions - одна из самых цитируемых статей по STM(Software Transactional Memory).

Если кто заинтересуется, возможно, есть смысл посмотреть и другие статьи от Tim Harris (я их не смотрел):
"Selected work:

* Tim Harris. Language constructs for transactional memory (or: transactional memory and atomic blocks are not the same thing) Invited talk, POPL, January 2009

* Martín Abadi, Tim Harris, Mojtaba Mehrara. Transactional memory with strong atomicity using off-the-shelf memory protection hardware PPoPP, February 2009

* Martín Abadi, Andrew Birrell, Tim Harris, Michael Isard. Semantics of Transactional Memory and Automatic Mutual Exclusion POPL 2008

* Tim Harris, Satnam Singh. Feedback directed implicit parallelism ICFP 2007

* Keir Fraser, Tim Harris. Concurrent programming without locks ACM TOCS, May 2007

* Miguel Castro, Manuel Costa, Tim Harris. Securing software by enforcing data-flow integrity OSDI 2006

* Tim Harris, Mark Plesko, Avraham Shinnar, David Tarditi. Optimizing Memory Transactions PLDI 2006

* Tim Harris, Simon Marlow, Simon Peyton-Jones, Maurice Herlihy. Composable memory transactions PPoPP 2005"

вторник, 29 сентября 2009 г.

Первое знакомство с атомарными переменными

Стоит взглянуть для начального знакомства на описание пакета java.util.concurrent.atomic в javadoc.
Работа с атомарными переменными также приводит к установлению отношения happend-before между потоками. Детальнее смотрите по ссылке выше.

Lock-free BlockingStack

Дмитрий Вьюков в комментах спрашивает "А слабо к этому стеку прикрутить блокирующую семантику, что бы pop() на пустом стеке блокировался до появления элемента, и так что бы стек оставался lock-free пока есть элементы?". Отвечаю - не слабо: