Aym*_*mer 4 java multithreading thread-safety
我是Java的新手,所以请原谅如果回答以下简单案例是显而易见的.
class A{
public void foo(Customer cust){
cust.setName(cust.getFirstName() + " " + cust.getLastName());
cust.setAddress(new Address("Rome"));
}
}
Run Code Online (Sandbox Code Playgroud)
我objectA为类创建了一个Singleton对象()A.
鉴于我没有任何类变量,如果我objectA.foo(new Customer())从不同的线程调用它是否是线程安全的?
如果我将foo更改为静态并A.foo(new Customer())从不同的线程调用该怎么办?它仍然是线程安全的吗?
鉴于我没有任何类变量,如果我从不同的线程调用objectA.foo(new Customer()),它是否是线程安全的?
当然如此.您的foo()方法不会更改A对象的任何状态(因为它没有任何状态)和您传递的对象new Customer(),作为该方法的参数不可用于任何其他线程.
如果我将foo更改为static并从不同的线程调用A.foo(new Customer())怎么办?它仍然是线程安全的吗?
只要你没有任何可变的static状态,你仍然很好.
| 归档时间: |
|
| 查看次数: |
108 次 |
| 最近记录: |