Ich bin auf die scala.concurrent.blocking
Methode gestoßen, und laut der Scala-Dokumentation ist dies ...
Wird verwendet, um einen Code zu kennzeichnen, der möglicherweise blockiert, sodass der aktuelle BlockContext das Verhalten der Laufzeit anpassen kann. Das ordnungsgemäße Markieren des Blockierungscodes kann die Leistung verbessern oder Deadlocks vermeiden.
Ich habe Zweifel:
- Was ist der Faktor, mit dem neue Threads erzeugt werden?
- Gilt dies nur für den
scala.concurrent.ExecutionContext.Implicits.global
Ausführungskontext oder auch für vom Benutzer erstellte Ausführungskontexte? - Was passiert, wenn ich eine ausführbare Datei mit
blocking {
... umschließe}
? - Jeder praktische Anwendungsfall, in dem wir dieses Konstrukt verwenden sollten.
blocking
? Sollte dies nur mit Futures verwendet werden (nicht im Haupt-Thread)?