Aiutami a comprendere una parte delle specifiche del linguaggio Java

6

Sto leggendo la parte 17.2.1 delle specifiche del linguaggio Java: link

Non copierò un testo, è troppo lungo, ma mi piacerebbe sapere, perché per il terzo passo della sequenza stanno dicendo che

If thread t was removed from m's wait set in step 2 due to an interrupt

Il thread non ha potuto accedere al passaggio 2 non è stato rimosso dal set di attesa, perché è stato scritto per il passaggio 1:

Thread t does not execute any further instructions until it has been removed from m's wait set

Pertanto, il thread non può essere rimosso dall'attesa impostata nel passaggio 2 a prescindere dal motivo, perché era già stato rimosso.

Per favore aiutami a capire questo.

    
posta dhblah 27.11.2012 - 21:04
fonte

2 risposte

6

Questo è un errore causato da un errore nell'aggiornamento dalla versione precedente JLS, Terza edizione 17.8.1 Attendi , numero mancante dell'elemento della lista.

La versione precedente di JLS aveva la sequenza rispettiva elencata da 1 a 4, non da 1 a 3 :

  1. Thread t is added to the wait set...
  2. Thread t does not execute any further instructions until...
  3. Thread t performs n lock actions....
  4. If thread t was removed from m's wait set in step 2...

Come puoi vedere, passaggio 2 nel documento della versione originale fa riferimento alla parte diversa da quella attualmente contrassegnata 2.

Rispetto alla versione originale, JLS Java SE 7 Edizione 17.2.1. Attendi ha perso il numero di elenco (probabilmente perso <li class="listitem"> in html) all'elemento Thread t non viene eseguito ...

Di conseguenza, l'intera sequenza ora elenca da 1 a 3 e le parole "passaggio 2" rimaste invariate rispetto alla versione originale rimandano il lettore all'elemento sbagliato che è stato precedentemente contrassegnato con 3, non 2.

http://i.stack.imgur.com/HPQaT.png

    
risposta data 28.11.2012 - 11:09
fonte
2

Probabilmente è solo un errore di battitura ed è pensato per essere il passaggio 1.

Gli errori di battitura si verificano anche in progetti di grandi dimensioni e su cui lavorano molte persone.

    
risposta data 27.11.2012 - 21:24
fonte

Leggi altre domande sui tag