A map is a data structure that maps a collection of keys to a collection of values. It’s a common concept in computer programming. You typically manipulate maps using functions such as
A concurrent map is one that lets you call some of those functions concurrently – even in combinations where the map is modified. If it lets you call
insert from multiple threads, with no mutual exclusion, it’s a concurrent map. If it lets you call
insert while another thread is calling
find, with no mutual exclusion, it’s a concurrent map. Other combinations might be allowed, too. Traditional maps, such as
std::unordered_map, don’t allow that.
Today I’m releasing Junction, a C++ library that contains several new concurrent maps. It’s BSD-licensed, so you can use the source code freely in any project, for any purpose.
On my Core i7-5930K, Junction’s two fastest maps outperform all other concurrent maps.