Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 12 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@

[![Dev](https://img.shields.io/badge/docs-dev-blue.svg)](https://juliaconcurrent.github.io/ConcurrentCollections.jl/dev/)

ConcurrentCollections.jl provides the following lock-free collections for Julia
≥ 1.7:
ConcurrentCollections.jl provides the following concurrent collections for Julia
≥ 1.7. Most of their operations are (almost) lock-free whenever appropriate.

* [`DualLinkedConcurrentRingQueue`](https://juliaconcurrent.github.io/ConcurrentCollections.jl/dev/#ConcurrentCollections.DualLinkedConcurrentRingQueue)
* [`DualLinkedQueue`](https://juliaconcurrent.github.io/ConcurrentCollections.jl/dev/#ConcurrentCollections.DualLinkedQueue)
Expand All @@ -12,3 +12,13 @@ ConcurrentCollections.jl provides the following lock-free collections for Julia
* [`ConcurrentStack`](https://juliaconcurrent.github.io/ConcurrentCollections.jl/dev/#ConcurrentCollections.ConcurrentStack)
* [`WorkStealingDeque`](https://juliaconcurrent.github.io/ConcurrentCollections.jl/dev/#ConcurrentCollections.WorkStealingDeque)
* [`ConcurrentDict`](https://juliaconcurrent.github.io/ConcurrentCollections.jl/dev/#ConcurrentCollections.ConcurrentDict)

**NOTE**: If you are trying to find a way to improve performance (especially
the *throughput*) of your program, it is highly recommended to look for ways to
**avoid** using concurrent collections first. In particular, consider applying
the [data-parallel](https://juliafolds.github.io/data-parallelism/) pattern to
dodge the difficulties in concurrent programming. For example, it is often a
better idea to use task-local copies of **non**-thread-safe `Dict` instead of
`ConcurrentDict` shared across tasks. For more information, see: [Efficient and
safe approaches to mutation in data
parallelism](https://juliafolds.github.io/data-parallelism/tutorials/mutations/).