【发布时间】:2014-10-17 14:18:59
【问题描述】:
在编程语言课程中,我的教授举了一个例子。
假设如下代码:
int x=initialization();
Thread T1=new computethread(x);
Thread t2=new evaluatethread(x);
...
...
Thread t100=new evaluatethread(x);
线程t1到t100需要变量x的初始值进行计算,t1需要更改x,computethread、evaluatethread的参数传递是首选?
我的教授说:
1) call by value result
2) call by ref
首选将x发送到computethread,evaluatethread,为什么按结果调用或按名称调用或此顺序如2)按值结果调用,1)按引用调用不是首选?
为什么他认为这些更好?
【问题讨论】:
-
你能把
computethread和evaluatethread之间的区别弄得更清楚吗?你的意思是computethreadx是一个输入/输出参数,而evaluatethread它只是一个输入? -
他说,t1到t100需要x的初始值,t1改变x的值。我认为只是 computethread() 改变了 x 的值,其他的没有改变。
标签: java compiler-construction operating-system thread-safety programming-languages