Articles of Multithreading

Wie Console.ReadLine zu unterbrechen

Ist es möglich, die Console.ReadLine() programmgesteuert zu stoppen? Ich habe eine Konsolenanwendung: Der Großteil der Logik läuft auf einem anderen Thread und im Hauptthread akzeptiere ich die Eingabe mit Console.ReadLine() . Ich möchte aufhören, von der Konsole zu lesen, wenn der getrennte Thread aufhört zu laufen. Wie kann ich das erreichen?

Wie signalisiert man select () um sofort zurückzukehren?

Ich habe einen Worker-Thread, der einen TCP-Socket für eingehenden Datenverkehr abhört, und puffert die empfangenen Daten für den Haupt-Thread, auf den zugegriffen werden soll (nennen wir diesen Socket A ). Der Worker-Thread muss jedoch auch einige reguläre Operationen (z. B. einmal pro Sekunde) ausführen, auch wenn keine Daten eingehen. Daher verwende ich select() mit einem […]

Wird ein pointers in C als atomare Aktion betrachtet?

Wenn ich ein Multi-threaded-Programm habe, das einen Cache-Speicher durch Referenz liest. Kann ich diesen pointers am Hauptthread ändern, ohne zu riskieren, dass andere Threads unerwartete Werte lesen? Wie ich es sehe, wenn die Änderung atomar ist, lesen die anderen Threads entweder den älteren Wert oder den neueren Wert; niemals zufälliger Speicher (oder Nullzeiger), oder? Mir […]

Kann seleniumium Multi Threading in einem Browser verwenden?

Ich möchte ein Web im Multithreading testen, aber wenn ich zu viele Chromtreiber öffne, verbrauchen sie zu viel Speicher. Kann ich Multi Threading in einem Browser verwenden?

Können Sie auf UI-Elemente von einem anderen Thread zugreifen? (nicht eingestellt)

Ich sehe viele Threads auf Google / hier auf UPDATE ein UI-Element von einem anderen Thread. Was ist, wenn ich nur den Wert einer Checkbox abrufen möchte? Kann ich das machen, ohne etwas Besonderes machen zu müssen?

Sollten Sie die Laufmethode synchronisieren? Warum oder warum nicht?

Ich habe immer gedacht, dass das Synchronisieren der run-Methode in einer Java-class, die Runnable implementiert, überflüssig ist. Ich versuche herauszufinden, warum Leute das tun: public class ThreadedClass implements Runnable{ //other stuff public synchronized void run(){ while(true) //do some stuff in a thread } } } Es scheint redundant und unnötig, da sie die Sperre des […]

Warum verwendet java.util.concurrent.ArrayBlockingQueue ‘while’ Schleifen anstelle von ‘if’ um Aufrufe von await ()?

Ich habe mit meiner eigenen Version davon gespielt und ‘if’ verwendet, und alles scheint gut zu funktionieren. Natürlich wird dies schrecklich ausfallen, wenn signalAll () anstelle von signal () verwendet wird, aber wenn nur ein Thread auf einmal benachrichtigt wird, wie kann das schief gehen? Ihr Code hier – überprüfen Sie die put () und […]

Können Sie mit einem guten Beispiel für die Verwendung von BackgroundWorker verlinken, ohne es als Komponente auf ein Formular zu setzen?

Ich kann mich erinnern, dass ich vor vielen Jahren (2005) BackgroundWorker in meinem Code verwendet habe, ohne dafür eine visuelle Komponente zu verwenden, aber ich kann mich nicht erinnern, wie (leider bin ich sehr vergesslich und vergesse alles sehr bald, nachdem ich es nicht mehr benutze) . Vielleicht habe ich die BackgroundWorker-class erweitert. Können Sie […]

Qt – Aktualisierung des Hauptfensters mit dem zweiten Thread

Ich habe eine Multithread-QT-Anwendung. Wenn ich einige processe in mainwindow.cpp mache, möchte ich gleichzeitig mainwindow.ui von einem anderen Thread aktualisieren. Ich habe mythread.h #ifndef MYTHREAD_H #define MYTHREAD_H #include #include “mainwindow.h” class mythread : public QThread { public: void run(); mythread( MainWindow* ana ); MainWindow* ana; private: }; #endif // MYTHREAD_H mythread.cpp mythread::mythread(MainWindow* a) { cout […]

Sind flüchtige Variablen so schnell “lesend” wie normale Lesevorgänge?

Ich weiß, dass das Schreiben in eine volatile Variable es aus dem Speicher aller CPUs löscht, aber ich möchte wissen, ob die Lesevorgänge in einer flüchtigen Variablen so schnell sind wie normale Lesevorgänge? Können volatile Variablen jemals in den CPU-Cache gestellt werden oder werden sie immer aus dem Hauptspeicher geholt?