方法里的局部非静态变量,多线程访问时为什么会被共享了?
我在主函数里定义了一个int类型的局部变量,在一个for循环中作为数组的访问下标,每循环一次会+1。单线程访问这个方法是正常的,但多线程访问时这个int变量竟然被共享了,同时去递增这个变量值,在多个线程中形成彼此相邻的不连续值,导致访问数组越界出错。我是做JAVA的,对C++不太熟悉,只是为了做个DLL给JAVA调用,之前用得好好的,现在增加了在JAVA中使用多线程去调用这个DLL才发现了问题。我觉得好奇怪,理论上这是不可能的,但由于我对C++的通讯机制不了解,也无从解决,希望有朋友能帮下忙,非常感谢!