Dites que j'ai un Stream
qui est plutôt cher à calculer. Je peux facilement créer un thread qui « calcule l'avance » juste en écrivant quelque chose commeQue se passe-t-il lorsqu'un Scala "Future" est collecté?
import scala.actors.Futures._
val s = future { stream.size }
Si je puis jeter la référence à ce Future
, sera que le fil soit tué par le collecteur des ordures?
Non. Le garbage collector ne tue jamais les fils. Le calcul peut avoir des effets secondaires que le garbage collector ne peut pas connaître, en d'autres termes, le thread peut faire quelque chose d'important que le garbage collector ne peut pas savoir - donc il ne peut jamais arrêter le thread en toute sécurité. – Jesper