[ARCHIV]Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht daran vorbei. Ohne dich kann ich nirgendwo hingehen - 5. - Seite 382

 
Integer:

Ein großer Applaus! Über den Code von Seite 378. Selbst wenn das Terminal die Reihenfolge der Warteschlange registriert, kann es nicht wissen, in welchem Fall die Funktion ausgeführt und in welchem Fall sie abgelehnt wurde.
Und was ist damit? Warum also muss sie das wissen? Es wird ein atomarer Zugang angeboten. Das ist alles, was es braucht. Erledigen Sie den Rest selbst. Von welcher Aufgabe sprechen Sie? Es ist alles abstrakt.
 
Zhunko:
Na und? Warum sollte er das wissen müssen? Der atomare Zugang ist gewährleistet. Das ist genug. Erledigen Sie den Rest selbst. Von welcher Aufgabe sprechen Sie? Es ist alles abstrakt.


Atomarer Zugang ist nicht genug. Es gibt keine Garantie für eine konsistente Ausführung von Aufgaben, einige Aufgaben können zurückbleiben. Aus Ihrem Code und den Protokollen geht hervor, dass die Aufgaben wahllos und nicht der Reihe nach ausgeführt werden.
 
Zhunko:
...den Rest selbst erledigen...

Das meine ich ja: Sie müssen es selbst tun, es reicht nicht aus, nur den atomaren Zugang zu ermöglichen.
 
Zhunko:
...Das ist genug. Erledigen Sie den Rest selbst....

Vadim, du widersprichst dir in erstaunlicher Weise selbst. Zuerst schreiben Sie, dass es genug ist. Dann stellt man fest (oder vermutet), dass etwas anderes getan werden muss.
 
Guten Tag! Bitte schreiben Sie, nachdem GlobalVariableSet ("Profit_pomnim", Itogo_Profit);
erstellt wurde, kann es auf traditionelle Weise weiter verwendet werden -

Profit_pomnim=365; Bumbara=Profit_pomnim; oder sollte es nur durch spezielle Funktionen aufgerufen werden? GlobalVariableSet("Gewinn_pomnim", 365);
 
Dimka-novitsek:
Guten Tag! Bitte schreiben Sie, ob nach der Erstellung einer globalen Variablen GlobalVariableSet("Profit_pomnim", Itogo_Profit);
diese auf herkömmliche Weise weiter verwendet werden kann -

Profit_pomnim=365; Bumbara=Profit_pomnim; oder ob sie nur über spezielle Funktionen angesprochen werden sollte?


Bumbara=Profit_pomnim - das geht nicht, es gibt keine Variable Profit_pomnim. Aber es gibt eine globale Variable Profit_pomnim.

So sollte es sein: Bumbara=GlobalVariableGet("Gewinn_pomnim");

 
Integer:

Ein atomarer Zugang reicht nicht aus. Es gibt keine Garantie für die konsistente Ausführung von Aufgaben, einige Aufgaben können zurückbleiben. Ihr Code und die Protokolle zeigen, dass die Aufgaben willkürlich und nicht nacheinander ausgeführt werden.
Ich verstehe das nicht... Was meinen Sie mit...? Welche Garantie? Sie nennen sich selbst einen Programmierer. Schreiben Sie auf eine Weise, die garantiert ist. Wie kann eine Aufgabe "hinter dem Bot" sein? Was haben Sie dort hineingeschrieben, das nicht funktionieren wird?
Ich habe den Verdacht, dass Sie auf eine bestimmte Reihenfolge der Adressierung einer Ressource fixiert sind. Dies ist der falsche Ansatz, um den Algorithmus zu organisieren. Schreiben Sie es so, dass es keine Rolle spielt.
Ganzzahlig:

Das ist es, was ich meine: Sie müssen selbst Maßnahmen ergreifen, aber es reicht nicht aus, einen atomaren Zugang zu schaffen.
In meiner Praxis war dies noch nie erforderlich. Sie können diesen Ansatz immer vermeiden. Halten Sie es einfach. Es wird zuverlässiger funktionieren.
Ganzzahlig:

Vadim, du widersprichst dir in erstaunlicher Weise selbst. Zunächst schreiben Sie, dass es genug ist. Dann stellt sich heraus, dass Sie verstehen (oder vermuten), dass etwas anderes getan werden muss.

Das ist kein Widerspruch. Oben antwortete.

====================

Was die Kompliziertheit betrifft, so erinnere ich mich, wie Sie eine Funktion mit einem komplexen Algorithmus zur Berechnung der Anzahl der Tage in einem Monat geschrieben haben. Ich lächle immer noch, wenn ich daran denke.

Dmitry, machen Sie es nicht zu kompliziert. Wenn Sie Konstanten haben, müssen Sie diese nicht berechnen. Sie müssen sie nur anmelden.

Das Gleiche gilt für das Multithreading. Wenn Sie es nicht brauchen, dürfen Sie es nicht verwenden. Die besondere Reihenfolge der Adressierung einer Ressource impliziert eine einfädige Ausführung.

Ganzzahlig:
Noch ein Wort zur Systemregulierung. Wenn mehrere Threads erstellt werden - ja, dann regelt das System. Aber wenn jemand von der Seite diese Threads eingegeben hat, dann müssen Sie selbst an alles denken, es wird kein Wunder vom System geben.
Wer ist dieser Jemand? Niemand sonst mischt sich in meine Themen ein. Sie müssen so schreiben, dass sie geschützt sind.

 

Zhunko:

1. Ich verstehe das nicht... Wie meinen Sie das? Welche Garantie?

2. Sie nennen sich selbst einen Programmierer.

3. Schreiben Sie so, dass es garantiert ist.

4. Wie kann eine Aufgabe "hinter den Bot kommen"? Was haben Sie dort hineingeschrieben, dass es nicht ausgeführt wird?

5. Ich vermute, dass Sie auf die besondere Reihenfolge des Zugriffs auf die Ressource fixiert sind. Dies ist der falsche Ansatz, um den Algorithmus zu organisieren. Schreiben Sie es so, dass es keine Rolle spielt.

6. In meiner Praxis war dies noch nie erforderlich. Sie können diesen Ansatz immer vermeiden. Halten Sie es einfach. Es wird zuverlässiger funktionieren.

Das ist kein Widerspruch. Ich habe oben geantwortet.

====================

7. Was die Kompliziertheit betrifft, so erinnere ich mich, wie Sie eine Funktion mit einem komplexen Algorithmus zur Berechnung der Anzahl der Tage in einem Monat geschrieben haben. Ich lächle immer noch, wenn ich daran denke.

8. Dmitry, es gibt keinen Grund, die Dinge zu verkomplizieren. Wenn Sie Konstanten haben, müssen Sie diese nicht berechnen. Es reicht aus, sie zu erklären.

9. Das Gleiche gilt für das Multithreading. Wenn Sie es nicht brauchen, verwenden Sie es nicht.

1. Entschuldigung!

2. Wo, wann, wo? Was hat das jetzt damit zu tun?

3. ich schreibe auf eine Weise, die garantiert ist.

4. Alle, die atomar zugänglich sind.

5. Nein. Und zwar nicht in einer Schleife, sondern mit Maßnahmen, die sicherstellen, dass alle Aufgaben ordnungsgemäß ausgeführt werden.

6. Reden Sie nicht um den heißen Brei herum. Die Datenaustauschfunktion zwischen den Terminals Ihrer Bibliothek erfordert dies, nicht nur den atomaren Zugriff.

7. Welche Funktion ist das? Erzählen Sie mir mehr. Das hier? Was ist daran so lustig? Vielleicht haben Sie einfach etwas nicht verstanden. Wenn das funktioniert, war es ein sportliches Interesse und nicht mehr. Es handelt sich übrigens um eine sehr komplexe Aufgabe, und der optimalste Algorithmus für diese Aufgabe (von den bekannten) ist auch ziemlich knifflig. Ihr Sarkasmus ist also unglücklich.

8. Oder vielleicht solltest du als Krankenschwester in einem Kindergarten arbeiten? Das Niveau der Predigten ist dasselbe, sie sind geeignet. Vielleicht im vorherigen Absatz Hinweis darauf, dass ich irgendwie nicht wissen, wie man Zeit in Sekunden zu Stunden Minuten übersetzen, etc. durch Funktionen emkulya?

9. Probleme mit dem Gedächtnis oder der Wahrnehmung der Realität? Denken Sie daran, worum es in der Diskussion geht - wie man eine parallele Ausführung von Aufgaben in eine sequenzielle umwandelt.

 
Integer:

9. Probleme mit dem Gedächtnis oder mit der Wahrnehmung der Realität? Erinnern Sie sich, worum es hier geht - wie man die parallele Ausführung von Aufgaben in eine sequenzielle Ausführung umwandelt.

Ihre Annahme, dass die Synchronisierung nicht synchron ist, war der Ausgangspunkt:

Ganzzahlig:

Vadim, haben Sie versucht, es anzuwenden? Es wird überhaupt nichts synchronisiert. Ich habe kürzlich damit gespielt. Sie müssen die Warteschlange selbst erstellen. Leider wird der Code dadurch nur um drei Zeilen reduziert. Oder vielleicht verstehe ich es nicht.

Hier ist der Code, in dem die Synchronisierung funktioniert. Es wird ein atomarer Zugriff auf die Ressource gewährt. Der Rest ist Ihre Fummelei bei der Zusammenführung von Themen in einem Thread. Ich habe Ihnen vorgeschlagen, den falschen Algorithmus zu überarbeiten. Es gibt nur eine richtige Lösung für eine solche Aufgabe - den gesamten Code in einem einzigen Thread zusammenzufassen. Dann wird die Ressource der Reihe nach ohne Synchronisation aufgerufen. Die Laufzeit des Codes ist die gleiche wie bei der Ausführung in mehreren Threads. Halten Sie es einfach.

 
Zhunko:

1. Ihre Vermutung, dass die Synchronisierung nicht funktioniert, geht auf Sie zurück:

Hier ist ein Code, bei dem die Synchronisierung funktioniert. Es wird ein atomarer Zugriff auf die Ressource gewährt. Der Rest ist Ihre Tüftelei mit der Fadenkonvergenz. Sie haben vorgeschlagen, den falschen Algorithmus zu überarbeiten. Die einzig richtige Lösung für eine solche Aufgabe besteht darin, alles in einem einzigen Thread zusammenzufassen. Dann wird die Ressource der Reihe nach ohne Synchronisation aufgerufen. Die Laufzeit des Codes ist die gleiche wie bei der Ausführung mit mehreren Threads. Vereinfachen Sie es.


1. Nicht aus einer Vermutung, sondern aus den Ergebnissen eines Experiments, die übrigens auch durch Ihr Experiment auf S. 378 bestätigt werden. 378.

2. Der Code auf Seite 378 bietet nur atomaren Zugriff. Es gibt keine Warteschlange für die Ausführung von Aufgaben. Es kann vorkommen, dass eine der Aufgaben sehr lange für die Ausführung benötigt.

Grund der Beschwerde: