Articles of Multithreading

Wie fragt man einen Pthread ab, um zu sehen, ob es noch läuft?

In meinem Destruktor möchte ich einen Thread sauber zerstören. Mein Ziel ist es zu warten, bis ein Thread fertig ist und dann den Thread zu zerstören. Das einzige, was ich gefunden habe, um den Status eines Pthreads abzufragen, ist pthread_attr_setdetachstate, aber dies sagt Ihnen nur, ob Ihr Thread: PTHREAD_CREATE_DETACHED PTHREAD_CREATE_JOINABLE Beide haben nichts damit zu […]

Macht die Verwendung von Tasks (TPL) eine Anwendung zu einer Multithreadanwendung?

Vor kurzem, als ich interviewt wurde, bekam ich diese Frage. F: Haben Sie Multithread-Anwendungen geschrieben? A: Ja F: Möchten Sie mehr erklären? A: Ich habe Tasks (Task Parallel library) benutzt, um einige Aufgaben auszuführen, wie zum Beispiel das waiting for some info from internet while loading UI . Dies verbessert die Benutzerfreundlichkeit meiner Anwendung. F: […]

Wie kann ich Future in Scala stornieren?

Java Future hat eine cancel Methode, die den Thread unterbrechen kann, der die Future Task ausführt. Wenn ich zum Beispiel einen unterbrechbaren Blockieraufruf in einer Java Future verpacke, kann ich ihn später unterbrechen. Scala Future bietet keine cancel . Angenommen, ich würde in einer Scala Future einen unterbrechbaren Blockierungsaufruf Scala Future . Wie kann ich […]

Woher bekomme ich eine fadensichere CollectionView?

Wenn ich eine Sammlung von Geschäftsobjekten in einem Hintergrundthread aktualisiere, erhalte ich folgende Fehlermeldung: 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 wie mache ich meine […]

Taskfortsetzung im UI-Thread

Gibt es eine “Standard” -Möglichkeit anzugeben, dass eine Taskfortsetzung in dem Thread ausgeführt werden soll, aus dem die ursprüngliche Task erstellt wurde? Derzeit habe ich den Code unten – es funktioniert, aber den Dispatcher verfolgen und eine zweite Aktion erstellen scheint wie unnötiger Aufwand. dispatcher = Dispatcher.CurrentDispatcher; Task task = Task.Factory.StartNew(() => { DoLongRunningWork(); }); […]

In Java kritischen Abschnitten, auf was sollte ich synchronisieren?

In Java ist die idiomatische Vorgehensweise zum Deklarieren kritischer Abschnitte im Code wie folgt: private void doSomething() { // thread-safe code synchronized(this) { // thread-unsafe code } // thread-safe code } Fast alle Blöcke synchronisieren sich this , aber gibt es einen besonderen Grund dafür? Gibt es andere Möglichkeiten? Gibt es Best Practices für das […]

Warten auf eine Liste von Zukunft

Ich habe eine Methode, die eine List von Futures zurückgibt List<Future> futures = getFutures(); Jetzt möchte ich warten, bis entweder alle Futures fertig bearbeitet sind oder eine der Aufgaben, deren Ausgabe von einer Zukunft zurückgegeben wird, eine Ausnahme austriggers. Selbst wenn eine Aufgabe eine Ausnahme austriggers, hat es keinen Sinn, auf die anderen Zukünfte zu […]

Java Synchronized Block für .class

Was bedeutet dieser Java-Code? Werden alle Objekte von MyClass ? synchronized(MyClass.class) { //is all objects of MyClass are thread-safe now ?? } Und wie unterscheidet sich der obige Code von diesem? synchronized(this) { //is all objects of MyClass are thread-safe now ?? }

Versuch, geschützten Speicher zu lesen oder zu schreiben. Dies ist oft ein Hinweis darauf, dass anderer Speicher beschädigt ist

Ich hoffe, dass jemand mich aufklären kann, was möglicherweise diesen Fehler verursachen könnte: Versuch, geschützten Speicher zu lesen oder zu schreiben. Dies ist oft ein Hinweis darauf, dass anderer Speicher beschädigt ist. Ich kann den Code nicht wirklich posten, da dieser Fehler anscheinend in einem beliebigen Bereich der Anwendung angezeigt wird. Die Anwendung wird irgendwo […]

ApartmentState für Dummies

Ich habe gerade einen Fehler damit behoben: _Thread.SetApartmentState(ApartmentState.STA); Jetzt würde ich gerne verstehen, was es bedeutet und warum es funktioniert!