Als «multithreading» getaggte Fragen

Multithreading ist die Fähigkeit eines Computers oder eines Programms, gleichzeitig oder asynchron zu arbeiten, indem mehrere gleichzeitige Ausführungsströme verwendet werden (im Allgemeinen als Threads bezeichnet).


6
CountDownLatch vs. Semaphore
Gibt es einen Vorteil der Verwendung java.util.concurrent.CountdownLatch anstatt java.util.concurrent.Semaphore ? Soweit ich das beurteilen kann, sind die folgenden Fragmente fast gleichwertig: 1. Semaphor final Semaphore sem = new Semaphore(0); for (int i = 0; i < num_threads; ++ i) { Thread t = new Thread() { public void run() { …

8
Rückgabewert vom Thread
Ich habe eine Methode mit a HandlerThread. Ein Wert wird innerhalb von geändert Threadund ich möchte ihn an die test()Methode zurückgeben. Gibt es eine Möglichkeit, dies zu tun? public void test() { Thread uiThread = new HandlerThread("UIHandler"){ public synchronized void run(){ int value; value = 2; //To be returned to …

3
Der richtige Weg, um eine nie endende Aufgabe zu implementieren. (Timer gegen Aufgabe)
Daher muss meine App eine Aktion fast ununterbrochen ausführen (mit einer Pause von ungefähr 10 Sekunden zwischen jedem Lauf), solange die App ausgeführt wird oder eine Stornierung angefordert wird. Die zu erledigende Arbeit kann bis zu 30 Sekunden dauern. Ist es besser, einen System.Timers.Timer zu verwenden und AutoReset zu verwenden, …



4
Was ist das Wiedereintrittsschloss und das Konzept im Allgemeinen?
Ich bin immer verwirrt. Würde jemand erklären, was wieder eintritt in verschiedenen Kontexten bedeutet? Und warum sollten Sie wiedereintrittsfähig oder nicht wiedereintrittsfähig verwenden? Sagen wir pthread (posix) sperrende Grundelemente, sind sie wiedereinsteigend oder nicht? Welche Fallstricke sollten bei der Verwendung vermieden werden? Ist Mutex wieder am Start?

16
Warten Sie, bis alle Threads ihre Arbeit in Java beendet haben
Ich schreibe eine Anwendung mit 5 Threads, die gleichzeitig Informationen aus dem Web abrufen und 5 verschiedene Felder in einer Pufferklasse ausfüllen. Ich muss Pufferdaten validieren und in einer Datenbank speichern, wenn alle Threads ihren Job beendet haben. Wie kann ich das tun (benachrichtigt werden, wenn alle Threads ihre Arbeit …



9
Synchronisieren des Zugriffs auf SimpleDateFormat
Das Javadoc für SimpleDateFormat gibt an, dass SimpleDateFormat nicht synchronisiert ist. "Datumsformate werden nicht synchronisiert. Es wird empfohlen, separate Formatinstanzen für jeden Thread zu erstellen. Wenn mehrere Threads gleichzeitig auf ein Format zugreifen, muss es extern synchronisiert werden." Was ist jedoch der beste Ansatz für die Verwendung einer Instanz von …


3
Sie müssen die Verwendung von SemaphoreSlim verstehen
Hier ist der Code, den ich habe, aber ich verstehe nicht, was er SemaphoreSlimtut. async Task WorkerMainAsync() { SemaphoreSlim ss = new SemaphoreSlim(10); List<Task> trackedTasks = new List<Task>(); while (DoMore()) { await ss.WaitAsync(); trackedTasks.Add(Task.Run(() => { DoPollingThenWorkAsync(); ss.Release(); })); } await Task.WhenAll(trackedTasks); } void DoPollingThenWorkAsync() { var msg = Poll(); …


8
Wie mache ich meine ArrayList Thread-sicher? Ein anderer Ansatz für Probleme in Java?
Ich habe eine ArrayList, mit der ich RaceCar-Objekte speichern möchte, die die Thread-Klasse erweitern, sobald die Ausführung abgeschlossen ist. Eine Klasse namens Race verarbeitet diese ArrayList mithilfe einer Rückrufmethode, die das RaceCar-Objekt nach Abschluss der Ausführung aufruft. Die Rückrufmethode addFinisher (RaceCar-Finisher) fügt das RaceCar-Objekt zur ArrayList hinzu. Dies soll die …

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.