Mam tu na myśli: Jeśli masz 2 wątki wykonujące operacje FAST, które muszą być zsynchronizowane, czy nie jest to podejście nieblokujące szybsze/lepsze niż podejście blokujące/przełączające kontekst?Blokowanie blokad a Blokowanie niezablokowujące
przez non-blocking mam na myśli coś takiego:
while (true) { if (checkAndGetTheLock()) break; }
Jedyne co mogę myśleć to głód (z wypaleniem procesora), jeśli zbyt wiele wątków zapętla się wokół blokady.
Jak wyważać jedno podejście w stosunku do drugiego?
Ile operacji blokowania wykonasz na rdzeń procesora na sekundę? – usr
AFAIK, JVM wykonuje tę optymalizację dla ciebie, jeśli nie ma rywalizacji na zamku (co powinno mieć miejsce, jeśli operacja jest szybka) –
@JB Nizet: Myślę, że musisz podjąć tę decyzję samodzielnie, używając synchronizowanego kontra ReentrantLock. – chrisapotek