C’è un modo per dichiarare gli elementi dell’array volatile in Java? ie volatile int[] a = new int[10]; dichiara il riferimento dell’array volatile , ma gli elementi dell’array (es. a[1] ) non sono ancora volatili. Quindi sto cercando qualcosa di simile volatile int[] a = new volatile int[10]; ma non funziona in questo modo. È […]
Capisco che volatile informa il compilatore che il valore può essere cambiato, ma per realizzare questa funzionalità, il compilatore deve introdurre una fence di memoria per farlo funzionare? Dalla mia comprensione, la sequenza di operazioni su oggetti volatili non può essere riordinata e deve essere preservata. Ciò sembra implicare che alcune barriere di memoria sono […]
Ho usato volatile dove non sono sicuro che sia necessario. Ero abbastanza sicuro che un blocco sarebbe eccessivo nella mia situazione. Leggere questo thread (commento di Eric Lippert) mi rende ansioso del mio utilizzo di volatile: quando dovrebbe essere usata la parola chiave volatile in c #? Ho usato volatile perché la mia variabile è […]
Usiamo volatile in uno dei nostri progetti per mantenere la stessa copia della variabile a cui si accede da diversi thread. La mia domanda è se sia giusto usare volatile con static . Il compilatore non fornisce errori, ma non capisco il motivo dell’utilizzo di entrambi.
Come risultato della mia risposta a questa domanda , ho iniziato a leggere la parola chiave volatile e ciò che il consenso è in merito. Vedo che ci sono molte informazioni a riguardo, alcune vecchie che ora sembrano sbagliate e molto nuove che dicono che non ha quasi nessun posto nella programmazione multi-thread. Quindi, vorrei […]
Ho una domanda su volatile in linguaggio C. Ho letto alcuni tutorial ma non riesco ancora a capire, alcuni dicono che il volatile dice all’ottimizzatore del compilatore che le operazioni che coinvolgono questa variabile non dovrebbero essere ottimizzate in certi modi. questo significa che ogni volta che il valore di una variabile cambia nel registro, […]
Ho esaminato le altre domande volatili contro Atomicxxxx in SO (incluso questo ) e ho letto la descrizione di java.util.current.atomic , e non sono abbastanza soddisfatto delle sfumature. Se sto cercando di decidere tra l’uso di volatile boolean e AtomicBoolean , ci sono delle differenze pratiche oltre alle operazioni di lettura-modifica-scrittura atomiche offerte da AtomicBoolean? […]
Si consideri volatile int sharedVar . Sappiamo che il JLS ci offre le seguenti garanzie: ogni azione di un thread di scrittura che precede la sua scrittura di valore i a sharedVar nell’ordine di programma happens-before dell’azione di scrittura; la scrittura di valore i da parte di w happens-before della corretta lettura di i da […]
Che cosa fa in pratica __asm__ __volatile__ () e qual è il significato della “memory” per l’architettura ARM?
Da quello che ho letto da Herb Sutter e da altri, si potrebbe pensare che la programmazione volatile e concorrente fosse un concetto completamente ortogonale, almeno per quanto riguarda C / C ++. Tuttavia, nell’implementazione GCC tutte le funzioni membro di std::atomic hanno il qualificatore volatile . Lo stesso è vero nell’implementazione di std::atomic Anthony […]