Ich schreibe in Java auf dem Vertex-Framework, und ich habe eine Architekturfrage bezüglich des Blockierens von Code. Ich habe ein JsonObject, die aus 10 Objekten bestehen, etwa so:Wie kann man mehrere synchrone Funktionen asynchron ausführen?
{
"System": "CD0"
"System": "CD1"
"System" : "CD2",
"System": "CD3",
"System": "CD4",
"System": "CD5"
"System": "CD6"
"System": "CD7"
"System": "CD8"
" System „:“ CD9"
}
ich habe auch eine synchrone Funktion, die ein Objekt aus dem JsonObject bekommt und verbraucht einen Web Service SOAP, während das Objekt, um es zu senden. Der SOAP-Webdienst ruft den Inhalt (z. B. CD0) ab und gibt nach einigen Sekunden eine Enum-Nummer zurück. Ich möchte dann den zurückgegebenen enum-Wert übernehmen und in einer Art Datenvariablen speichern (wie Hash-Tabelle).
Was ich letztlich möchte, ist eine Funktion, die über alle JsonObject-Objekte iterieren wird, und für jede einzelne den Blockierungscode parallel ausführen. Ich möchte es parallel laufen, so dass selbst wenn einer der Aufrufe an die Funktion 20 Sekunden warten muss, wird es nicht die anderen Anrufe stecken.
Wie kann ich so etwas in Vertex tun?
p.s: Ich werde schätzen, wenn Sie Fehler korrigieren werden, die ich schrieb.
Bitte liefern Sie [Minimal, vollständige und überprüfbare Beispiel] (https://stackoverflow.com/help/mcve) – vinS
Verwenden Sie eine 'ExecutorService'. –
Gehört von Threads.! es scheint dasselbe zu tun. –