动态库被多线程调用的问题?坐等结贴。
如果一个动态库静态加载,那么是不是进程中的所有线程都共用该动态库的同一份内存空间呢? 那样就算不使用全局和静态变量,动态库被多线程调用,也很危险啊。比如一个函数
int sum(int x, int y)
{
......做一些其他的事情
return x +y ;
}
这样第一个进程调用的时候 sum(10, 20),当它还没有执行到 x+y的时候,另一个线程调用sum(100, 50);
这样x和y的值都被改变了,返回的是100+50了?
我觉得就算是动态库,当做个线程调用这个函数的时候,函数的数据在自己的线程区域应该是独立的,就是说线程1和线程2应该独自有一份x,y的数据拷贝,互相独立不干扰的。可以这样理解吗?
多谢大家了。