2013-07-07 40 views
0

,如果我有這種類型的程序級功能是一個簡單的funcion線程安全

def returnInt(s): 
    return int(float(s)) 

和它結束了在同一時間2個獨立的線程被調用這將是「線程安全」還是我需要添加爲兩個線程類的功能 如

class StepperControl(threading.Thread): 
.... 

    def returnInt(self,s): 
     return int(float(self.s)) 

.... 

class BounceControl(threading.Thread): 
.... 

    def returnInt(self,s): 
     return int(float(self.s)) 

.... 

西蒙

+0

爲什麼不應該這樣?它可能不會完成你的想法,它會基本忽略你傳遞的參數並返回'self.s'。如果你想讓它返回'self.bla'或's =「bla」',你需要使用'getattr(self,s)'來代替。 – filmor

+2

它沒有任何副作用,也沒有引用超出範圍的變量/內存,所以它本質上是線程安全的。 – Tibor

+0

@tibor - Ta :)你是否將你的答案添加爲答案而不是評論,然後我可以將它標記爲已接受:) – SimpleSi

回答

3

事實上,它是線程安全的,因爲它沒有訪問或試圖改變外界的任何東西小精靈。