作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有嵌套类 CRecursion,它有执行递归的方法。此 CRecursion 在许多线程中创建。来自主类的线程方法是否安全调用?谢谢。
class A {
method1() {....}
for(int i=0;i<100;i++){
execute(new CRecursion(...))
}
protected CRecursion {
calculate (par){
if (some_condition) {
calculate(par1)
} else {
String s=method1(value);
.....
}
}
....
}
变量值是对象。但是每个方法都是内部的。
最佳答案
如果递归例程使用的对象被限制在同一个线程中,那么是的,递归例程是线程安全的。阅读 this related StackOverflow question on thread confinement and it's impact on thread-safety 会有所帮助.
在这种特殊情况下(使用您发布的代码),您需要确保:
CRecursion
的构造函数的参数不得在多个线程之间共享。如果共享它们,则以下几点变得相关。关于Java线程安全递归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7532599/
我是一名优秀的程序员,十分优秀!