Als «thread-safety» getaggte Fragen

Ein Code ist threadsicher, wenn er Datenstrukturen nur so manipuliert, dass er eine konsistente Ausführung dieses Codes durch mehrere Threads ermöglicht. Ein Code kann threadsicher, bedingt sicher (gegenseitiger Ausschluss erforderlich) oder unsicher (kann nur von einem Thread sicher verwendet werden) sein.


3
Threadsafe gegen Wiedereinsteiger
Kürzlich stellte ich eine Frage mit dem Titel "Ist Malloc-Thread sicher?" und darin fragte ich: "Ist Malloc wieder am Start?" Ich hatte den Eindruck, dass alle Wiedereinsteiger threadsicher sind. Ist diese Annahme falsch?


4
Sicherheit der Verwendung von Thread.current [] in Schienen
Ich bekomme immer wieder widersprüchliche Meinungen über die Praxis des Speicherns von Informationen im Thread.currentHash (z. B. current_user, aktuelle Subdomain usw.). Die Technik wurde vorgeschlagen, um die spätere Verarbeitung innerhalb der Modellschicht (Abfrageumfang, Prüfung usw.) zu vereinfachen. Warum sind meine Thread-Variablen in Rails intermittierend? Alternative zur Verwendung von Thread.current im …


14
Android - Der beste und sicherste Weg, um Thread zu stoppen
Ich möchte wissen, wie man einen Thread in Android am besten stoppt. Ich weiß, dass ich AsyncTaskstattdessen verwenden kann und dass es eine cancel()Methode gibt. Ich muss Threads in meiner Situation verwenden. Hier ist, wie ich benutze Thread: Runnable runnable = new Runnable() { @Override public void run() { //doing …

2
Wie erstelle ich eine Aufgabe (TPL), auf der ein STA-Thread ausgeführt wird?
Die Verwendung von Thread ist ziemlich einfach Thread thread = new Thread(MethodWhichRequiresSTA); thread.SetApartmentState(ApartmentState.STA); Wie kann ich dasselbe mit Aufgaben in einer WPF-Anwendung erreichen? Hier ist ein Code: Task.Factory.StartNew ( () => {return "some Text";} ) .ContinueWith(r => AddControlsToGrid(r.Result)); Ich erhalte eine InvalidOperationException mit Der aufrufende Thread muss STA sein, da …

9
Effizientes thread-sicheres Singleton in C ++
Das übliche Muster für eine Singleton-Klasse ist so etwas wie static Foo &getInst() { static Foo *inst = NULL; if(inst == NULL) inst = new Foo(...); return *inst; } Nach meinem Verständnis ist diese Lösung jedoch nicht threadsicher, da 1) der Konstruktor von Foo möglicherweise mehrmals aufgerufen wird (was möglicherweise …


3
Multithreading-Programm bleibt im optimierten Modus hängen, läuft aber normal in -O0
Ich habe ein einfaches Multithreading-Programm wie folgt geschrieben: static bool finished = false; int func() { size_t i = 0; while (!finished) ++i; return i; } int main() { auto result=std::async(std::launch::async, func); std::this_thread::sleep_for(std::chrono::seconds(1)); finished=true; std::cout<<"result ="<<result.get(); std::cout<<"\nmain thread id="<<std::this_thread::get_id()<<std::endl; } Es verhält sich normalerweise im Debug-Modus in Visual Studio oder …

12
Woher bekomme ich eine thread-sichere CollectionView?
Beim Aktualisieren einer Sammlung von Geschäftsobjekten in einem Hintergrundthread wird folgende Fehlermeldung angezeigt: Diese Art von CollectionView unterstützt keine Änderungen an der SourceCollection von einem Thread, der sich vom Dispatcher-Thread unterscheidet. Ok, das macht Sinn. Es stellt sich aber auch die Frage, welche Version von CollectionView mehrere Threads unterstützt und …



2
Ist das Iterieren über ein Array mit einer for-Schleife eine thread-sichere Operation in C #? Was ist mit dem Iterieren eines IEnumerable <T> mit einer foreach-Schleife?
Basierend auf meinem Verständnis ein C # Array gegeben, der Akt der gleichzeitig von mehreren Threads über das Array Iterieren ist ein Thread einen sicheren Betrieb. Mit Iteration über das Array meine ich das Lesen aller Positionen innerhalb des Arrays mittels einer einfachen alten forSchleife . Jeder Thread liest einfach …

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.