interlocked::increment cost == 81 ns interlocked::decrement cost == 85 ns interlocked::exchange cost == 86 ns interlocked::compare_exchange cost == 95 ns interlocked::or cost == 94 ns interlocked::and cost == 85 ns interlocked::bit_test_and_set cost == 91 ns 1 reader, 0 writer, 1 upgrader... weight system approach simple approach advanced approach 10 2328ms(n.a.) 2323ms(1.00,77) 1373ms(1.00,127) 100 4104ms(n.a.) 5377ms(1.00,1) 2668ms(1.00,122) 1000 15561ms(n.a.) 20226ms(1.00,60) 7127ms(1.00,113) 2 reader, 0 writer, 1 upgrader... weight system approach simple approach advanced approach 10 3945ms(n.a.) 3423ms(1.00,122) 1442ms(1.15,105) 100 8613ms(n.a.) 8106ms(1.00,109) 1222ms(1.02,117) 1000 25882ms(n.a.) 30987ms(1.00,126) 7669ms(1.04,94) 8 reader, 2 writer, 2 upgrader... weight system approach simple approach advanced approach 10 21322ms(n.a.) 18644ms(1.00,127) 10342ms(1.00,127) 100 40691ms(n.a.) 43463ms(1.00,127) 16074ms(1.00,127) 1000 113763ms(n.a.) 146471ms(1.00,127) 79641ms(1.00,127)