2016-07-29 17 views
-2

Multithreading ist, wenn mehrere Threads gleichzeitig ausgeführt werden. Wenn die Threads synchronisiert sind, wird Multi - Threading nicht ausgeführt. Sie arbeiten als normaler Thread. Warum Multithreading überhaupt erst machen, wenn wir es trotzdem synchronisieren müssen?Wird bei der Synchronisation Multithreading nicht zu Multithreading? Warum Multithreading überhaupt?

+3

Sie synchronisieren nur kritische Abschnitte, die ausschließlich gegenseitig ausgeführt werden müssen. –

+0

Wenn Sie mit einem Schloss absolut alles synchronisieren, wäre es sinnlos, weshalb Sie das nicht tun würden. –

Antwort

0

Wenn Sie Ihre Threads auf die von Ihnen beschriebene Weise synchronisieren, hat Multithreading keinen Sinn. Ein Ort, an dem Sie Multithreading verwenden würden, wäre die parallele Datenverarbeitung. Nachdem Sie alle erforderlichen Eingaben gesammelt haben, können Sie die Threads unabhängig voneinander ausführen, ohne dass eine Synchronisierung erforderlich ist.

0

Sie synchronisieren nicht, so dass Sie mit Threads enden, die nie parallel ausgeführt werden, sondern Sie synchronisieren, so dass bestimmte Teile des Codes nicht parallel ausgeführt werden.

Stellen Sie sich zwei Threads vor, die fortlaufend Werte aus einem freigegebenen Array lesen, eine Berechnung für sie ausführen und dann das Ergebnis in einen gemeinsamen Speicherbereich einfügen.

Der Teil mit den Lesewerten muss synchronisiert werden, um sicherzustellen, dass keine zwei Threads den gleichen Wert lesen.

Der Teil mit dem Hinzufügen der Daten in den Speicherort sollte synchronisiert werden, damit die Daten nicht von beiden Threads gleichzeitig geschrieben werden.

Der Teil mit der Berechnung kann parallel durchgeführt werden, und normalerweise wird dieser Teil am zeitaufwendigsten sein. So profitieren Sie vom Multithreading.