根据定义,局部变量是在方法中声明的变量。多个线程将它们保存在自己的堆栈中。我需要了解如何在多线程环境中传递Method参数。 ?
例如 - 假设User是一个实例变量并传递给它的本地同步方法。
public static synchronized registerUser(User user,int count){}
public synchronized registerUser(User user,int count){}
在上面的例子中,我传递了一个Object和原语。
传递参数如何在具有多个线程的静态方法中进行管理? (对象,图元)
传递参数如何在具有多个线程的非静态方法中进行管理? (对象,原语)?
3.活动线程总是获取它执行的方法锁。由于User对象引用在synchronized上下文中工作,该引用是否可供其他线程在解锁方法中使用?
答案 0 :(得分:0)
静态方法锁定类,而成员方法锁定对象。
Java使用pass-by-value,在原语的情况下是值,在对象的情况下是对象的引用。
在你的方法中:
user
上没有锁定,在调用synchronized方法时,可以通过对其的不同引用修改另一个线程。count
的值,以便在调用任何方法后该方法都会看到修改。