【发布时间】:2011-11-23 20:37:43
【问题描述】:
我有嵌套类 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);
.....
}
}
....
}
变量值是对象。但是对于每种方法都是内部的。
【问题讨论】:
-
不同的调用是否共享相同的可变数据?还是他们都在处理方法本身的本地数据?
-
如果您有一个 CPU 密集型进程,那么要使用的最佳线程数很可能是您拥有的内核数。例如如果您有 4 个内核,则仅使用 4 个线程。这可以帮助您确定这是否是一个好主意。 ;)
-
此外,在函数式语言中使用递归最好表示的内容通常最好在 Java 中作为循环执行。即更快。在某些情况下递归最快,但在 Java 中这种情况比较少见。
标签: java multithreading recursion