2010-11-26 2 views
1
def isSafe(i:Int) = { 
    var count = i 
    var acc = 0 
    while(count!=0){ 
     acc += i*i 
     count -= 1 
    } 
    acc 
    } 
+0

Vous voulez dire que '' count' pas cont' dans la boucle? – axel22

+0

En dehors de la faute de frappe, je ne vois pas pourquoi pas mais je ne suis pas un gars Scala. – Lazarus

+0

J'ai réécrit méthode, désolé pour mon insouciance – Jeriho

Répondre

7

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.

3

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 
+0

fonction dans op-post est juste version simplifiée (concept) de la fonction réelle – Jeriho

+1

Je ne peux pas garantir que la fonction réelle est également thread-safe alors ... –

Questions connexes