interlocked::increment cost == 112 ns interlocked::decrement cost == 82 ns interlocked::exchange cost == 89 ns interlocked::compare_exchange cost == 108 ns interlocked::or cost == 113 ns interlocked::and cost == 94 ns interlocked::bit_test_and_set cost == 96 ns 1 reader, 0 writer, 1 upgrader... weight system approach simple approach advanced approach 10 1559ms(n.a.) 2186ms(1.00,35) 1516ms(1.00,120) 100 4615ms(n.a.) 5215ms(1.00,109) 2700ms(1.00,91) 1000 16006ms(n.a.) 19475ms(1.00,94) 7210ms(1.00,123) 2 reader, 0 writer, 1 upgrader... weight system approach simple approach advanced approach 10 4089ms(n.a.) 3729ms(1.00,115) 1504ms(1.03,100) 100 8336ms(n.a.) 8639ms(1.00,127) 1163ms(1.12,44) 1000 26893ms(n.a.) 34158ms(1.00,125) 7564ms(1.33,119) 8 reader, 2 writer, 2 upgrader... weight system approach simple approach advanced approach 10 17326ms(n.a.) 20038ms(1.00,126) 9998ms(1.00,125) 100 39631ms(n.a.) 44386ms(1.00,127) 14063ms(1.00,127) 1000 112363ms(n.a.) 197473ms(1.00,127) 87805ms(1.00,127)