互斥锁是对共享变量加锁还是?该如何解决

互斥锁是对共享变量加锁还是?
问的问题可能比较弱智啊 不要见笑啊
互斥锁是对共享变量加锁还是对程序加锁

如果是对共享变量加锁是一次对所有的共享变量加锁还是怎么设置的

还是对执行的程序加锁

这块一直很迷惑
球高手啊

------解决方案--------------------
看《Windows核心编程》
------解决方案--------------------
锁只是锁的这个互斥锁变量本身,如果一个线程对某个互斥锁变量加锁成功的话,那么其他线程对这个互斥锁变量加锁则不会成功,直到互斥锁变量解除锁定为止
------解决方案--------------------
我的理解是对程序加锁,如果多个方法都会对变量i进行操作修改,那么在这些方法中需要一个全局变量标志是否有程序正在修改i,如果有,那么不执行或者等待,如果没有,则继续执行并加锁
------解决方案--------------------
你看一下加锁我解锁的代码就知道了:

1.初始化锁

线程1:
2.加锁
//互斥的代码部分
3.解锁

线程2:
2.加锁
//互斥的代码部分
3.解锁
------解决方案--------------------
用锁的地方代码最好不要太长,不然效率不高。