Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Sincronizzazione Lettori e Scrittori

    Supponiamo di avere una lista condivisa tra un thread lettore ed uno scrittore. Ovviamente quando lo scrittore scrive e il lettore legge, lo faranno all'interno di un blocco synchronized.

    Supponiamo ora che, in un altra parte del codice, il thread scrittore abbia bisogno di leggere la lista. Secondo me non occorre che questa lettura sia in un blocco synchronized, perche anche se accede la lista nello stesso momento del lettore comunque non avra' una race condition perche ' la lista non viene modificata da nessun altro in quel momento.

    Volevo giusto una conferma se il mio ragionamento e' giusto o fallace.

    grazie
    MB

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    in teoria si, ma tu stai supponendo il caso di due thread che accedono in lettura, siccome in realtà non sai mai se qualcuno accede in lettura mentre un altro sta scrivendo, quindi non puoi predirre il risultato. Per questo tipo di comunicazioni la sincronizzazione è d'obbligo
    RTFM Read That F*** Manual!!!

  3. #3
    Utente di HTML.it L'avatar di yuno
    Registrato dal
    Apr 2010
    Messaggi
    62
    Ciao, anche io penso proprio che hai bisogno di sincronizzare tutto un suggerimento che ti posso dare di usare i "read and write lock " facili da usare e ti permettono di accedere in modo efficente alla tua list se si è il lettura infatti tutti i thread possono accedere in scrittura ovviamente ne accede solo uno. Ovviamente se usi questo oggetto i metodi di accesso non sono più sincronizzati ma è il lock a gestire la sincronizzazione
    qui c'è l'implementazione fatta da java

  4. #4
    ciao grazie ad entrambi per la risposta.

    no il miopunto era che se ho solo uno scrittore ed un lettore, se allo scrittore dovesse capitare di leggere non c'e' bisogno di lock perche sono sicuro che nessun altro stia scrivendo (dato che lo scrittore sta eseguendo codice di lettura)

    era piu un dubbio "teorico" che mi era venuto.
    Grazie cmq yuno della classe che mi hai linkato, la terro' a mente la prossima volta che avro a che fare con thread ( )

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    si ho capito il tuo dubbio e mi è chiaro, in teoria ti dicevo va bene, in pratica sei fortemente limitato dall'avere 2 componenti.
    Essendo io paranoica in fatto di codice e sapendo anche che si tende a riusare quanto già fatto, applicare la regola generale non porta tanti spostamenti e ti mette in condizioni che la tua porzione di codice non ha aggiunto potenziali errori
    RTFM Read That F*** Manual!!!

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.