Articles of Multithreading

Vermeiden Sie synchronisiert (this) in Java?

Immer wenn eine Frage zu SO über Java–Synchronisation auftaucht, sind einige Leute sehr darauf bedacht, darauf hinzuweisen, dass eine synchronized(this) vermieden werden sollte. Stattdessen behaupten sie, eine Sperre auf eine private Referenz ist vorzuziehen. Einige der angegebenen Gründe sind: irgendein böser Code kann dein Schloss stehlen (sehr beliebt ist dieser, hat auch eine “zufällige” Variante) […]

Verwenden von Threads zum Ausführen von databaseanforderungen

Ich versuche zu verstehen, wie Threads in Java funktioniert. Dies ist eine einfache databaseanforderung, die ein ResultSet zurückgibt. Ich benutze JavaFx. package application; import java.sql.ResultSet; import java.sql.SQLException; import javafx.fxml.FXML; import javafx.scene.control.Button; import javafx.scene.control.Label; import javafx.scene.control.TextField; public class Controller{ @FXML private Button getCourseBtn; @FXML private TextField courseId; @FXML private Label courseCodeLbl; private ModelController mController; private void […]

Was ist der Unterschied zwischen Invoke () und BeginInvoke ()

Was ist der Unterschied zwischen BeginInvoke() und Invoke() ? Hauptsächlich, wofür jeder verwendet werden würde. BEARBEITEN: Was ist der Unterschied zwischen dem Erstellen eines Threading-Objekts und dem Aufrufen von BeginInvoke() und dem Aufruf von BeginInvoke() für einen Delegaten? oder sind sie das Gleiche?

Wie verwende ich wait and notify in Java ohne IllegalMonitorStateException?

Ich habe 2 Matrizen und ich muss sie multiplizieren und dann die Ergebnisse jeder Zelle ausdrucken. Sobald eine Zelle fertig ist, muss ich sie drucken, aber zum Beispiel muss ich die Zelle [0] [0] vor der Zelle [2] [0] drucken, auch wenn das Ergebnis von [2] [0] zuerst fertig ist . Also muss ich es […]

Warte auf mehrere SwingWorker

Bitte beachten Sie das folgende Codefragment: import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.lang.reflect.InvocationTargetException; import javax.swing.*; public class TestApplet extends JApplet { @Override public void init() { try { SwingUtilities.invokeAndWait(new Runnable() { @Override public void run() { createGUI(); } }); } catch(InterruptedException | InvocationTargetException ex) { } } private void createGUI() { getContentPane().setLayout(new FlowLayout()); JButton […]

Die innere class kann auf Werte zugreifen, diese jedoch nicht aktualisieren – AsyncTask

Ich versuche, einen Ordner mit Android AsyncTask zu AsyncTask . Die class (Decompress genannt) ist eine innere class von Unzip wobei Unzip selbst eine Nicht-Aktivitätsklasse ist. Der Pseudocode ist: public class Unzip { private String index; private String unzipDest; //destination file for storing folder. private Activity activity; private boolean result; //result of decompress. public void […]

Erstellen einer blockierenden Warteschlange in .NET?

Ich habe ein Szenario, bei dem mehrere Threads zu einer Warteschlange hinzugefügt werden und mehrere Threads aus derselben Warteschlange gelesen werden. Wenn die Warteschlange eine bestimmte Größe erreicht, werden alle Threads , die die Warteschlange füllen, beim Hinzufügen gesperrt, bis ein Element aus der Warteschlange entfernt wird. Die Lösung unten ist, was ich gerade benutze […]

Der aufrufende Thread kann nicht auf dieses Objekt zugreifen, da ein anderer Thread es besitzt

Mein Code ist wie folgt public CountryStandards() { InitializeComponent(); try { FillPageControls(); } catch (Exception ex) { MessageBox.Show(ex.Message, “Country Standards”, MessageBoxButton.OK, MessageBoxImage.Error); } } /// /// Fills the page controls. /// private void FillPageControls() { popUpProgressBar.IsOpen = true; lblProgress.Content = “Loading. Please wait…”; progress.IsIndeterminate = true; worker = new BackgroundWorker(); worker.DoWork += new System.ComponentModel.DoWorkEventHandler(worker_DoWork); worker.ProgressChanged […]

Unterschied zwischen wait () und sleep ()

Was ist der Unterschied zwischen wait() und sleep() in Threads? Ist mir klar, dass ein wait() -ing Thread noch im laufenden Modus ist und CPU-Zyklen verwendet, aber ein sleep() -ing keine CPU-Zyklen verbraucht? Warum haben wir sowohl wait() als auch sleep() : Wie variiert ihre Implementierung auf einer niedrigeren Ebene?

Was ist mit der Verwendung von Thread.Abort () falsch?

Also ich weiß, dass du nicht verwenden solltest Thread.Abort() Aber ich habe nie eine gute Erklärung bekommen. Gibt es eine performanceseinbuße oder ein verstecktes Problem? Ich weiß, dass Sie die ThreadAbortException nicht ignorieren können (was sinnvoll ist)