互斥的问题,想共同探讨一下
有这样一个实例:
一个全局变量A,在一个程序的两个线程里都对这个A进行A++操作,没有对A进行互斥的保护,那么可能存在A++不是加了1,而是加了2的情况存在。
那么问题来了,假设:
1:A的操作我封装成一个DLL,那么一个进程的两个线程现时A++操作,还会出现+2的情况吗?我认为是可以的
2,A的操作我封装成一个DLL,两个进程的分别两个线程A++操作呢,结果会是怎么样?
3,A的操作如果在驱动内,两个进程同时访问会怎么样?
有人说两个程序有不同的程序空间,应该是互不影响的
你们觉得呢
[解决办法]
问题还是操作的时候这个全局变量是否是同一个变量 无论是不同进程和线程之间。
只要存在这个问题 就一定会影响结果的。
同一进程中的线程就不说了,不同进程之间 有的说dll也可以做到共享同一全局变量。
内核就不用说了,统一空间的。
[解决办法]
1:A的操作我封装成一个DLL,那么一个进程的两个线程现时A++操作,还会出现+2的情况吗?
2,A的操作我封装成一个DLL,两个进程的分别两个线程A++操作呢,结果会是怎么样?
3,A的操作如果在驱动内,两个进程同时访问会怎么样?
--------------------
1.会出现
2.不会
3.不会出现