Visualizzazione dei risultati da 1 a 5 su 5

Visualizzazione discussione

  1. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da gabriele90 Visualizza il messaggio
    l'esercizio dice che un lettore, se la chiave dell'elemento da leggere non è presente oppure se non ci sono elementi nella mappa, deve lanciare un'eccezione.
    Stessa cosa per i produttori, che lanciano un'ecezione se la mappa è piena (si per l'esercizio la mappa ha un limite), e per i consumatori, che lanciano un'eccezione se l'elemento da eliminare non c'è (quindi non c'è la chiave).
    Allora scusa .... dove sta l'attesa? Cioè il concetto di "bloccante" dove entra in tutto questo?

    Quote Originariamente inviata da gabriele90 Visualizza il messaggio
    cioè (supponendo sia una coda) produttore/consumatore possono lavorare senza "disturbarsi" (nella coda il prod aggiunge elementi mentre cons elimina elementi dalla testa, quindi prod e cons non si toccano e possono lavorare contemporaneamente)
    Generalmente le code "sincronizzate"/"bloccanti" più semplici e basilari hanno un singolo lock, per cui c'è effettivamente mutua esclusione tra chi inserisce e chi estrae. Il lock comunque serve in questo caso sia per la atomicità sia per la visibilità delle modifiche da parte degli altri thread.
    Ma è perfettamente possibile creare una coda più sofisticata che permette una maggior concorrenza ... si tratta solo di sfruttare in modo migliore e più sofisticato le tecniche di locking.

    Per es. java.util.concurrent.ConcurrentLinkedDeque (da Java 7 in poi) è una "deque" (che sta per "double ended queue") è appunto una collezione in cui, come dice la documentazione: Concurrent insertion, removal, and access operations execute safely across multiple threads. Però è un-bounded (senza limite).
    EDIT: ho verificato bene adesso, ConcurrentLinkedDeque non è "bloccante". Era comunque solo come esempio di maggior concorrenza.

    Quote Originariamente inviata da gabriele90 Visualizza il messaggio
    Se questi fossero gli schemi di cui l'esercizio parla, devono effettivamente essere adattati alle mappe, e non capisco come...
    Quello che non è ancora chiaro è dove rientra il concetto di "bloccante" nel contesto chiesto/indicato da te.
    Ultima modifica di andbin; 11-07-2015 a 15:41
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.