问题很简单,假设我有:
class MyClass
{
object myObj1
object myObj2
}
Thread1(MyClass c)
{
DoALotOnMyObj1(c.myObj1);
}
Thread2(MyClass c)
{
DoALotOnMyObj2(c.myObj2);
}
在这种情况下我是否必须使用锁,即使我完全确定两个线程只使用myObj1(或2取决于线程)而不是其他字段?
答案 0 :(得分:3)
不,你不会。
答案 1 :(得分:1)
拥有锁的概念是确保在一个线程中更改资源时,其他线程在锁被释放之前不会访问它。
在您的情况下,您不会在两个线程之间共享任何资源,因此您不需要锁定。