【发布时间】:2014-03-25 20:30:51
【问题描述】:
我有一个关于 java 与静态方法同步的问题。
更准确地说,我有一个具有静态方法的类,可以由多个线程同时使用。我的类的主要静态方法有一个参数,并依次调用其他辅助静态方法并传递此参数。
我的问题如下:由于该类可以同时被多个线程使用,是否存在另一个线程将参数替换为另一个线程的风险?
我曾想过在我的主函数的参数变量上使用一个同步块,包括方法的整个代码(以及对辅助函数的调用),但我不确定这是一个好的解决方案。
谁能帮帮我?
【问题讨论】:
-
一个单独的线程如何跳转到另一个线程的栈帧并替换一个参数值?
-
不,参数不能被线程调用修改,因为Java是传值的。
-
参数的类型是什么?集合还是数组?
-
即使参数是对调用静态方法的类(this)的引用?
-
它对班级有什么影响?该方法是否以任何方式改变状态?也就是说,它们会更新类中的静态值吗?
标签: java multithreading static synchronization block