线程的LOCK使用问题
例如我有一个全局变量(用静态类来做)Class.num,还有一个Class.obj,用来lock用
分别有Thread_A和Thread_B两个线程同时工作
现在这两个线程都有可能同时去访问修改这个Class.num
我想用lock去保护,达到让这两个线程顺序的去访问修改这个Class.num
那么看书上写的应该是:
lock(Class.obj)
{
Class.num=123;//这样去保护就没事了
}
问题来了
假如我有三个要保护的变量呢,如再加一个Class.code
如果我继续用lock来保护
lock(Class.obj)
{
Class.code=333;
}
那么,在Thread_A执行到
lock(Class.obj)
{
Class.code=333;
}
的时候,另一个线程Thread_B在执行
lock(Class.obj)
{
Class.num=123;
}
这句时,会等待Thread_A的lock执行完再执行吗?
具体就是想弄明白,lock是对Class.obj来进行保护还是对lock的语句块里的变量进行保护