def isSafe(i:Int) = {
var count = i
var acc = 0
while(count!=0){
acc += i*i
count -= 1
}
acc
}
Répondre
Si par sûr vous voulez dire qu'il retourne le même résultat indépendamment du nombre de threads l'invoquer et dans quel ordre, alors oui, c'est sûr. C'est parce qu'il ne modifie aucun emplacement de mémoire partagée, seulement ses variables locales.
C'est sûr, il n'y a pas d'état partagé qui pourrait entraîner une contamination par le filetage.
Il est également massivement trop compliquée, la définition suivante est à la fois plus court et plus rapide:
def isSafe(i: Int) = i * i * i
fonction dans op-post est juste version simplifiée (concept) de la fonction réelle – Jeriho
Je ne peux pas garantir que la fonction réelle est également thread-safe alors ... –
Vous voulez dire que '' count' pas cont' dans la boucle? – axel22
En dehors de la faute de frappe, je ne vois pas pourquoi pas mais je ne suis pas un gars Scala. – Lazarus
J'ai réécrit méthode, désolé pour mon insouciance – Jeriho