Future can achieve multi-threaded concurrency, easy to use, but the effect is very good, look directly at the code bar
Import Java.text.SimpleDateFormatimport Java.util.Dateimport java.util.concurrent.TimeUnitimport Scala.concurrent. {Await, Future}import scala.concurrent.ExecutionContext.Implicits.GlobalImport Scala.concurrent.duration._Objectfuturetest {def main (args:array[string]): Unit={val Results= Await.result (F4,5seconds) println ("End:"+NewSimpleDateFormat ("Hh:mm:ss:SSS"). Format (NewDate ())) println (Results)} Val F1=Future {println ("F1 executing"+NewSimpleDateFormat ("Hh:mm:ss:SSS"). Format (NewDate ())) TimeUnit.SECONDS.sleep (1) "F1"} val F2=Future {println ("F2 executing"+NewSimpleDateFormat ("Hh:mm:ss:SSS"). Format (NewDate ())) TimeUnit.SECONDS.sleep (2) "F2"} val f3=Future {println ("f3 executing"+NewSimpleDateFormat ("Hh:mm:ss:SSS"). Format (NewDate ())) TimeUnit.SECONDS.sleep (3) "f3"} val f4:future[seq[string]]=future.sequence (Seq (F1, F2, F3))}
The results are as follows:
£ º:741: £ º £741 £ º:788: 13 :760List (F1, F2, F3)
F1, F2, F3 simultaneously start, the realization of multithreading concurrency
Beginner scala3--using the future for concurrency