如果算的话,那是否所有静态函数都有lock的需要呢??
7 个解决方案
#1
静态函数内的静态变量是非线程安全的,多线程需要lock
静态函数内的非静态变量(局部变量)是线程安全的,不需要lock。
静态函数内的非静态变量(局部变量)是线程安全的,不需要lock。
#2
方法里声明的变量都是临时变量,跟静态不静态没有关系...静态方法也跟静态对象没有关系...
需不需要lock只取决于对象是否线程安全,跟静态不静态没有关系...
需不需要lock只取决于对象是否线程安全,跟静态不静态没有关系...
#3
对的就是这样的
#4
明白
#5
再问一个
对于静态和非静态方法,是否就区别于能否不实例化就调用??
对于静态和非静态方法,是否就区别于能否不实例化就调用??
#6
静态方法与非静态方法的区别在于一个是类方法,一个是实例方法。从这一点上来说,你认为的能否不实例化就调用是一个区别,但当然还有其他的细节区别,比如静态方法只能访问类的静态变量这样的情况。
所以,如果你只是问概念的差异可以这样认为,如果是问具体使用中的差异,也不安全对了。在适当的时候使用适当的方式方法也是编程中的一个要点。
#7
静态函数和普通函数是一样的
#1
静态函数内的静态变量是非线程安全的,多线程需要lock
静态函数内的非静态变量(局部变量)是线程安全的,不需要lock。
静态函数内的非静态变量(局部变量)是线程安全的,不需要lock。
#2
方法里声明的变量都是临时变量,跟静态不静态没有关系...静态方法也跟静态对象没有关系...
需不需要lock只取决于对象是否线程安全,跟静态不静态没有关系...
需不需要lock只取决于对象是否线程安全,跟静态不静态没有关系...
#3
对的就是这样的
#4
明白
#5
再问一个
对于静态和非静态方法,是否就区别于能否不实例化就调用??
对于静态和非静态方法,是否就区别于能否不实例化就调用??
#6
静态方法与非静态方法的区别在于一个是类方法,一个是实例方法。从这一点上来说,你认为的能否不实例化就调用是一个区别,但当然还有其他的细节区别,比如静态方法只能访问类的静态变量这样的情况。
所以,如果你只是问概念的差异可以这样认为,如果是问具体使用中的差异,也不安全对了。在适当的时候使用适当的方式方法也是编程中的一个要点。
#7
静态函数和普通函数是一样的