Ci sono due concetti distinti qui.
- Fast-percorso e il codice
- Uncontended e la sincronizzazione Contesa
lento percorso vs codice Veloce-percorso lento-percorso
questo è un altro modo per identificare il produttore del il codice binario specifico della macchina.
Con HotSpot VM, codice lento-percorso è codice binario prodotta da un'implementazione C++, dove il codice veloce-percorso mezzi codice prodotto dal compilatore JIT.
In senso generale, il codice di percorso veloce è molto più ottimizzato. Per comprendere appieno i compilatori JIT wikipedia is a good place to start.
Uncontended e Contesa sincronizzazione
sincronizzazione costrutto di Java (Monitors) hanno il concetto di proprietà. Quando un thread tenta di bloccare (ottenere la proprietà di) il monitor, può essere bloccato (di proprietà di un altro thread) o sbloccato.
sincronizzazione Uncontended avviene in due diversi scenari:
- sbloccato monitor (proprietà acquisita stretto distanza)
- Monitor già di proprietà dello stesso filo
sincronizzazione sostenuto, d'altra parte, significa che il thread sarà bloccato fino a quando il thread proprietario non rilascerà il blocco del monitor.
Rispondendo alla domanda
By rapido percorso di sincronizzazione uncontended i mezzi autore, la traduzione bytecode più veloce (fast-path) nello scenario più economico (sincronizzazione uncontended).
fonte
2014-07-19 16:32:11
Hai effettuato ricerche su google. Questo mi è venuto in mente: https://blogs.oracle.com/dagastine/entry/java_synchronization_optimizations_in_mustang – Gray