Il multi-threading è la capacità di un computer o di un programma di eseguire lavori contemporaneamente o in modo asincrono utilizzando più flussi di esecuzione simultanei (generalmente chiamati thread).
In generale, per int num, num++(o ++num), come operazione di lettura-modifica-scrittura, non è atomico . Ma vedo spesso compilatori, ad esempio GCC , generare il seguente codice per esso ( prova qui ): Dato che la riga 5, che corrisponde a num++un'istruzione, possiamo concludere che in questo caso num++ è …
Supponiamo che io stia iniziando un std::threade quindi detach(), quindi il thread continua l'esecuzione anche se quello std::threadche una volta lo rappresentava, va fuori portata. Supponiamo inoltre che il programma non disponga di un protocollo affidabile per unire il thread separato 1 , quindi il thread disconnesso continua a funzionare …
Ho la seguente classe. class Test{ public HashSet<string> Data = new HashSet<string>(); } Devo cambiare il campo "Dati" da thread diversi, quindi vorrei alcune opinioni sulla mia attuale implementazione thread-safe. class Test{ public HashSet<string> Data = new HashSet<string>(); public void Add(string Val){ lock(Data) Data.Add(Val); } public void Remove(string Val){ lock(Data) …
AsyncTask è un'ottima cosa eseguire attività complesse in un altro thread. Ma quando si verifica un cambio di orientamento o un'altra modifica della configurazione mentre AsyncTaskè ancora in esecuzione, la corrente Activityviene distrutta e riavviata. E poiché l'istanza di AsyncTaskè connessa a quell'attività, fallisce e provoca una finestra di messaggio …
Esiste un comando equivalente in GDB a quello del "! Process 0 7" di WinDbg? Voglio estrarre tutti i thread in un file di dump insieme ai loro backtrace in GDB. "info thread" non genera le tracce dello stack. Quindi, c'è un comando che lo fa?
Oltre alle ovvie differenze: Utilizzare enumerateObjectsUsingBlockquando sono necessari sia l'indice che l'oggetto Non usare enumerateObjectsUsingBlockquando è necessario modificare le variabili locali (mi sono sbagliato su questo, vedi la risposta di bbum) È enumerateObjectsUsingBlockgeneralmente considerato migliore o peggiore quando for (id obj in myArray)funzionerebbe anche? Quali sono i vantaggi / gli …
In un linguaggio di basso livello (C, C ++ o altro): ho la scelta tra avere un mucchio di mutex (come quello che mi dà pthread o qualunque cosa la libreria di sistema nativa fornisca) o uno singolo per un oggetto. Quanto è efficace bloccare un mutex? Vale a dire …
Qual è il modo per ottenere un contatore thread-safe in C # con le migliori prestazioni possibili? Questo è semplice come si ottiene: public static long GetNextValue() { long result; lock (LOCK) { result = COUNTER++; } return result; } Ma ci sono alternative più veloci?
Mi chiedevo se hai un metodo statico che non è sincronizzato, ma non modifica alcuna variabile statica è sicuro per i thread? Che dire se il metodo crea variabili locali al suo interno? Ad esempio, il codice seguente è thread-safe? public static String[] makeStringArray( String a, String b ){ return …
La seguente implementazione, usando l'inizializzazione lazy, del Singletonthread (Meyers 'Singleton) è sicura? static Singleton& instance() { static Singleton s; return s; } In caso contrario, perché e come renderlo sicuro?
Ho un metodo che restituisce un Listfuturo List<Future<O>> futures = getFutures(); Ora voglio aspettare fino a quando tutti i futures non sono stati elaborati correttamente o una delle attività il cui output viene restituito da un futuro genera un'eccezione. Anche se un'attività genera un'eccezione, non ha senso aspettare gli altri …
Spero che qualcuno mi possa illuminare su cosa potrebbe causare questo errore: Tentativo di leggere o scrivere memoria protetta. Questo è spesso un'indicazione che l'altra memoria è corrotta. Non riesco davvero a postare il codice perché questo errore sembra essere lanciato in qualsiasi area casuale dell'applicazione. L'applicazione funzionerà ovunque dalle …
Ehm, sto cercando di trovare questi due metodi nel BCL usando Reflector, ma non riesco a individuarli. Qual è la differenza tra questi due frammenti? UN: IEnumerable<string> items = ... Parallel.ForEach(items, item => { ... }); B: IEnumerable<string> items = ... foreach (var item in items.AsParallel()) { ... } Ci …
Tutti avvertono che Java DateFormat non è thread-safe e capisco il concetto teoricamente. Ma non sono in grado di visualizzare quali problemi reali possiamo affrontare a causa di questo. Ad esempio, ho un campo DateFormat in una classe e lo stesso viene utilizzato in diversi metodi della classe (date di …
C ++ 17 ha introdotto una nuova classe di blocco denominata std::scoped_lock. A giudicare dalla documentazione sembra simile alla std::lock_guardclasse già esistente . Qual è la differenza e quando dovrei usarla?
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.