Articles of blocco

Acquisire / rilasciare semantica con negozi non temporali su x64

Ho qualcosa come: if (f = acquire_load() == ) { … use Foo } e: auto f = new Foo(); release_store(f) Si potrebbe facilmente immaginare un’implementazione di acquire_load e release_store che utilizza atomico con carico (memory_order_acquire) e store (memory_order_release). Ma ora cosa succede se release_store viene implementato con _mm_stream_si64, una scrittura non temporale, che non […]

Monitoraggio contro blocco

Quando è opportuno utilizzare la class Monitor o la parola chiave lock per la sicurezza dei thread in C #? EDIT: Dalle risposte fino ad ora sembra che il lock sia una scorciatoia per una serie di chiamate alla class Monitor . A cosa serve esattamente la chiamata di blocco a mano bassa? O più […]

Differenza tra gli stati di thread WAIT e BLOCKED

Qual è la differenza tra lo stato del thread WAIT e lo stato del thread BLOCCATO? La documentazione di Thread.State : bloccato Un thread che è bloccato in attesa di un blocco monitor è in questo stato. In attesa Un thread che attende indefinitamente un altro thread per eseguire una determinata azione è in questo […]

Quali sono le differenze tra le varie opzioni di sincronizzazione dei thread in C #?

Qualcuno può spiegare la differenza tra: lock (someobject) {} Utilizzando Mutex Usando il semaforo Utilizzo del monitor Utilizzo di altre classi di sincronizzazione .Net Non riesco a capirlo. Mi sembra che i primi due siano uguali?

Sicurezza del filo C # con get / set

Questa è una domanda dettagliata per C #. Supponiamo che io abbia una class con un object e quell’object sia protetto da un lucchetto: Object mLock = new Object(); MyObject property; public MyObject MyProperty { get { return property; } set { property = value; } } Voglio che un thread di polling sia in […]

Definizione del blocco – differenza tra parentesi e do-end?

qualcuno può spiegare perché il codice seguente abortisce con un errore irb(main):186:0> print ((1..10).collect do |x| x**2 end) SyntaxError: (irb):186: syntax error, unexpected keyword_do_block, expecting ‘)’ print ((1..10).collect do |x| x**2 end) ^ (irb):186: syntax error, unexpected keyword_end, expecting $end print ((1..10).collect do |x| x**2 end) ^ from /usr/bin/irb:12:in `’ mentre il seguente codice con […]

Qual è la differenza tra sincronizzato su lockObject e usando questo come blocco?

Conosco la differenza tra il metodo sincronizzato e il blocco sincronizzato, ma non sono sicuro della parte del blocco sincronizzata. Supponendo che io abbia questo codice class Test { private int x=0; private Object lockObject = new Object(); public void incBlock() { synchronized(lockObject) { x++; } System.out.println(“x=”+x); } public void incThis() { // same as […]

Errore di syntax del blocco di Ruby

Possibile duplicato: Blocco ruby e argomenti non separati Non sono sicuro di aver compreso questo errore di syntax. Sto utilizzando Carrierwave per gestire alcuni caricamenti di file in un’app Rails e mi sembra di passare un blocco a uno dei metodi in modo errato. Ecco l’esempio nel documento Carrierwave : version :thumb do process :resize_to_fill […]

Garanzie di avanzamento senza blocco

Aneddoticamente, ho scoperto che molti programmatori credono erroneamente che “lock-free” significhi semplicemente “programmazione concorrente senza mutex”. Di solito, c’è anche un malinteso correlato che lo scopo di scrivere codice lock-free è per prestazioni concorrenziali migliori. Naturalmente, la definizione corretta di lock-free riguarda in realtà le garanzie di progresso . Un algoritmo lock-free garantisce che almeno […]

La migliore spiegazione dei blocchi di Ruby?

Qual è la migliore spiegazione per i blocchi di Ruby che puoi condividere? Sia l’uso che la scrittura del codice possono prendere un blocco?