Articles of sincronizzazione

Link simbolici e cartelle sincronizzate in Vagrant

Voglio usare Vagrant per fornire un ambiente di sviluppo comune al mio team. I padroni di casa sono completamente diversi: Alcuni usano OS X, alcuni Linux e alcuni Windows. Alcuni usano VMware, altri usano VirtualBox. All’interno della VM vogliamo eseguire Linux. Finora, va tutto bene. Ora la nostra idea era che ogni sviluppatore fosse in […]

blocco sincronizzato per un object intero

Ho appena trovato il blocco sincronizzato in Java e ho scritto un piccolo programma per verificare come funziona. Creo 10 thread e ogni thread incrementa un object Integer 1000 volte. Quindi con la sincronizzazione presumerei un risultato di 10000 dopo che tutti i thread hanno terminato il loro lavoro e un risultato inferiore a 10000 […]

Assicurarsi che i blocchi sincronizzati di Java siano stati presi in ordine?

abbiamo due thread che accedono a una lista tramite un metodo sincronizzato. Possiamo a) fare affidamento sul tempo di esecuzione per assicurarsi che ognuno di essi abbia accesso al metodo in base all’ordine in cui ha cercato di o b) la VM segue qualsiasi altra regola c) c’è un modo migliore per serializzare le richieste? […]

Esiste una class di sincronizzazione che garantisce l’ordine FIFO in C #?

Che cos’è e come si usa? Ho bisogno di questo perché ho un timer che si inserisce in DB ogni secondo, e ho una risorsa condivisa tra il gestore del timer e il thread principale. Voglio garantire che se il gestore del timer impiega più di un secondo nell’inserimento, i thread attesi devono essere eseguiti […]

Utilizzare la stringa come blocco per eseguire la sincronizzazione dei thread

Mentre stavo guardando un certo codice di applicazione legacy ho notato che sta usando un object stringa per eseguire la sincronizzazione dei thread. Sto cercando di risolvere alcuni problemi di conflitto di thread in questo programma e mi chiedevo se questo potesse portare a situazioni così strane. Qualche idea ? private static string mutex= “ABC”; […]

Sta cambiando un puntatore considerato un’azione atomica in C?

Se ho un programma multi-thread che legge una memoria di tipo cache per riferimento. Posso cambiare questo puntatore con il thread principale senza rischiare che uno qualsiasi degli altri thread legga valori inaspettati. A mio avviso, se la modifica è atomica, gli altri thread leggeranno il valore precedente o il valore più recente; mai memoria […]

Dovresti sincronizzare il metodo di esecuzione? Perché o perché no?

Ho sempre pensato che la sincronizzazione del metodo run in una class java che implementa Runnable sia ridondante. Sto cercando di capire perché le persone fanno questo: public class ThreadedClass implements Runnable{ //other stuff public synchronized void run(){ while(true) //do some stuff in a thread } } } Sembra ridondante e non necessario poiché stanno […]

Modo corretto per sincronizzare ArrayList in java

Non sono sicuro se questo è il modo corretto per sincronizzare il mio ArrayList . Ho un ArrayList in_queue che viene passato dalla funzione registerInQueue . ArrayList in_queue = null; public void registerInQueue(ArrayList in_queue) { this.in_queue = in_queue; } Ora sto cercando di sincronizzarlo. Questo in_queue mio object in_queue correttamente? List in_queue_list = Collections.synchronizedList(in_queue); synchronized […]

Assicurarsi che l’esecuzione del lavoro Spring Quartz non si sovrapponga

Ho un programma Java che esegue da Spring Qquartz ogni 20 secondi. A volte bastano pochi secondi per essere eseguiti, ma man mano che i dati aumentano, sono sicuro che verrà eseguito per 20 secondi o più. Come posso impedire a Quartz di triggersre / triggersre il lavoro mentre è ancora in esecuzione un’istanza? L’triggerszione […]

Come acquisire un blocco con una chiave

Qual è il modo migliore per impedire l’aggiornamento simultaneo di un record in un set di valori-chiave senza bloccare l’intero set? Semanticamente, sto cercando un qualche tipo di blocco da una chiave (idealmente, l’implementazione di Java, ma non necessariamente): interface LockByKey { void lock(String key); // acquire an exclusive lock for a key void unlock(String […]