Articles of multithreading

HashSet concorrente in .NET Framework?

Ho la seguente class. class Test{ public HashSet Data = new HashSet(); } Ho bisogno di cambiare il campo “Dati” da diversi thread, quindi vorrei alcune opinioni sulla mia attuale implementazione thread-safe. class Test{ public HashSet Data = new HashSet(); public void Add(string Val){ lock(Data) Data.Add(Val); } public void Remove(string Val){ lock(Data) Data.Remove(Val); } } […]

C’è un modo per sospendere indefinitamente un thread?

Durante il mio tempo libero ho lavorato su un’applicazione .NET per la ricerca sul Web e una delle funzionalità di questa app che volevo includere era un pulsante di pausa per mettere in pausa una discussione specifica. Sono relativamente nuovo al multi-threading e non sono stato in grado di capire un modo per mettere in […]

‘using’ statement vs ‘prova finalmente’

Ho un sacco di proprietà su cui userò i blocchi di lettura / scrittura. Posso implementarli con un try finally o una clausola using . Nel try finally avrei acquisito il blocco prima del try e rilasciato finally . Nella clausola using , vorrei creare una class che acquisisca il lock nel suo costruttore e […]

I timer C # vengono trascorsi su un thread separato?

Un System.Timers.Timer trascorre su un thread separato rispetto al thread che lo ha creato? Diciamo che ho una lezione con un timer che scatta ogni 5 secondi. Quando il timer scocca, nel metodo trascorso, alcuni oggetti vengono modificati. Diciamo che ci vuole molto tempo per modificare questo object, come 10 secondi. È ansible che mi […]

È sicuro build widget Swing / AWT NON sul thread di invio eventi?

Ho integrato l’aspetto Sostanza nella mia applicazione e ho incontrato diversi problemi relativi alle routine di controllo interno EDT (Event Dispatch Thread). La sostanza si rifiuta categoricamente di build classi di UI al di fuori dell’EDT. Ho fatto un sacco di Swing / AWT e conosco la maggior parte delle regole riguardanti l’EDT. Io uso […]

L’accesso a una variabile in C # è un’operazione atomica?

Sono stato convinto che se più thread possono accedere a una variabile, tutte le letture e le scritture su quella variabile devono essere protette dal codice di sincronizzazione, ad esempio un’istruzione “lock”, perché il processore potrebbe passare a un altro thread a metà uno scritto. Tuttavia, stavo guardando attraverso System.Web.Security.Membership usando Reflector e trovato codice […]

Cos’è un semaforo?

Un semaforo è un concetto di programmazione che viene spesso utilizzato per risolvere problemi di multi-threading. La mia domanda alla comunità: Cos’è un semaforo e come lo usi?

Scegliere tra l’invio di ExecutorService e l’esecuzione di ExecutorService

Come dovrei scegliere tra l’ invio o l’ esecuzione di ExecutorService , se il valore restituito non è la mia preoccupazione? Se provo entrambi, non ho visto differenze tra i due tranne il valore restituito. ExecutorService threadExecutor = Executors.newSingleThreadExecutor(); threadExecutor.execute(new Task()); ExecutorService threadExecutor = Executors.newSingleThreadExecutor(); threadExecutor.submit(new Task());

I thread di inizializzazione statici Java sono sicuri?

Sto usando un blocco di codice statico per inizializzare alcuni controller in un registro che ho. La mia domanda è quindi, posso garantire che questo blocco di codice statico verrà chiamato solo una volta quando la class viene caricata per la prima volta? Capisco che non posso garantire quando verrà chiamato questo blocco di codice, […]

Quicksort o mergesort multithread

Come posso implementare un quicksort concorrente o un algoritmo di mergesort per Java? Abbiamo riscontrato problemi su un Mac (virtuale) a 16 picchi dove solo un core (!) Funzionava usando l’algoritmo di ordinamento Java predefinito ed era, beh, non bello vedere quella macchina molto fine essere completamente sottoutilizzata. Quindi abbiamo scritto il nostro (l’ho scritto […]