|
1 | 1 | # lockfree |
2 | 2 |
|
3 | | -[](https://godoc.org/github.com/changkun/lockfree) |
4 | | -[](https://travis-ci.org/changkun/lockfree) [](https://goreportcard.com/report/github.com/changkun/lockfree) [](https://codecov.io/gh/changkun/lockfree) [](https://github.com/changkun/lockfree/releases) |
| 3 | +[](https://pkg.go.dev/golang.design/x/lockfree) [](https://goreportcard.com/report/golang.design/x/lockfree) |
| 4 | + |
| 5 | +[](https://codecov.io/gh/golang-design/lockfree) |
5 | 6 |
|
6 | | -Package lock-free offers lock-free utilities in Go. |
7 | | - |
8 | | -## Contributing |
9 | | - |
10 | | -We would love to have your experiences. Feel free to [submit an issue](https://github.com/changkun/lockfree/issues/new) for requesting new implementation or bug report. |
11 | | - |
12 | | -## List of Algorithms |
13 | | - |
14 | | -### Linked List |
15 | | - |
16 | | -- [ ] Harris, Timothy L. "A pragmatic implementation of non-blocking linked-lists." International Symposium on Distributed Computing. Springer, Berlin, Heidelberg, 2001. [PDF](https://pdfs.semanticscholar.org/68a9/005a5ec10daece36ca5ecb9cad7be44770b1.pdf) |
17 | | -- [ ] Sundell, Hakan, and Philippas Tsigas. "Lock-Free and Practical Deques and Doubly Linked Lists using Single-Word Compare-And-Swap." 2004 [PDF](https://pdfs.semanticscholar.org/8a68/f45bd32ed050a96faa24139ab71178258f13.pdf) |
18 | | -- [ ] Valois, John D. "Lock-free linked lists using compare-and-swap." PODC. Vol. 95. 1995. [PDF](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.41.9506&rep=rep1&type=pdf) |
19 | | - |
20 | | -### Queue |
21 | 7 |
|
22 | | -- [x] Maged M. Michael and Michael L. Scott. 1996. Simple, fast, and practical non-blocking and blocking concurrent queue algorithms. In Proceedings of the fifteenth annual ACM symposium on Principles of distributed computing (PODC '96). ACM, New York, NY, USA, 267-275. [PDF](https://apps.dtic.mil/dtic/tr/fulltext/u2/a309412.pdf) |
23 | | -- [ ] Shann, Chien-Hua, Ting-Lu Huang, and Cheng Chen. "A practical nonblocking queue algorithm using compare-and-swap." Proceedings Seventh International Conference on Parallel and Distributed Systems (Cat. No. PR00568). IEEE, 2000. [PDF](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.199.7928&rep=rep1&type=pdf) |
24 | | -- [ ] Fober, Dominique, Yann Orlarey, and Stéphane Letz. "Optimised lock-free FIFO queue." (2001). [PDF](https://hal.archives-ouvertes.fr/hal-02158792/document) |
25 | | -- [ ] Evequoz, Claude. "Non-blocking concurrent fifo queues with single word synchronization primitives." 2008 37th International Conference on Parallel Processing. IEEE, 2008. [PDF](https://www.liblfds.org/downloads/white%20papers/%5BQueue%5D%20-%20%5BEvequoz%5D%20-%20Non-Blocking%20Concurrent%20FIFO%20Queues%20With%20Single%20Word%20Synchroniation%20Primitives.pdf) |
26 | | - |
27 | | -### Skip-list |
28 | | - |
29 | | -- [ ] Fomitchev, Mikhail, and Eric Ruppert. "Lock-free linked lists and skip lists." Proceedings of the twenty-third annual ACM symposium on Principles of distributed computing. ACM, 2004. [PDF](http://people.scs.carleton.ca/~edwardduong/PDF_files_of_relevant_papers/2004%20-%20Lock-free%20Linked%20List%20and%20Skip%20Lists.pdf) |
30 | | -- [ ] Herlihy, Maurice, et al. "A provably correct scalable concurrent skip list." Conference On Principles of Distributed Systems (OPODIS). 2006. [PDF](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.170.719&rep=rep1&type=pdf) |
31 | | - |
32 | | -### Stack |
33 | | - |
34 | | -- [ ] Hendler, Danny, Nir Shavit, and Lena Yerushalmi. "A scalable lock-free stack algorithm." Proceedings of the sixteenth annual ACM symposium on Parallelism in algorithms and architectures. ACM, 2004. [PDF](http://www.inf.ufsc.br/~dovicchi/pos-ed/pos/artigos/p206-hendler.pdf) |
35 | | - |
36 | | -### Tree |
| 8 | +Package lock-free offers lock-free utilities in Go. |
37 | 9 |
|
38 | | -- [ ] Bronson, Nathan G., et al. "A practical concurrent binary search tree." ACM Sigplan Notices. Vol. 45. No. 5. ACM, 2010. [PDF](http://www.academia.edu/download/42135309/ppopp207-bronson.pdf) |
39 | | -- [ ] Braginsky, Anastasia, and Erez Petrank. "A lock-free B+ tree." Proceedings of the twenty-fourth annual ACM symposium on Parallelism in algorithms and architectures. ACM, 2012. [PDF](http://www.cs.technion.ac.il/~erez/Papers/lfbtree-full.pdf) |
40 | | -- [ ] Kim, Jong Ho, Helen Cameron, and Peter Graham. "Lock-free red-black trees using cas." Concurrency and Computation: Practice and experience (2006): 1-40. [PDF](https://www.cs.umanitoba.ca/~hacamero/Research/RBTreesKim.pdf) |
| 10 | +``` |
| 11 | +import "golang.design/x/lockfree" |
| 12 | +``` |
41 | 13 |
|
42 | | -### Hash |
| 14 | +## Contributing |
43 | 15 |
|
44 | | -- [ ] Michael, Maged M. "High performance dynamic lock-free hash tables and list-based sets." Proceedings of the fourteenth annual ACM symposium on Parallel algorithms and architectures. ACM, 2002. [PDF](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.114.5854&rep=rep1&type=pdf) |
| 16 | +We would love to have your experiences. Feel free to [submit an issue](https://golang.design/x/lockfree/issues/new) for requesting a new implementation or bug report. |
45 | 17 |
|
46 | 18 | ## License |
47 | 19 |
|
|
0 commit comments