多线程如何处理多次调用同一个线程对程序的影响

多线程如何避免多次调用同一个线程对程序的影响
线程1
{
  创建一个数组;
  改变数组值;
  //因要将数组传递给线程2,所以数组必须是static型。
  启动线程2,并将数组传递给线程2;
   
}
线程2
{
  利用数组值做一些操作;
}

我的问题是:在线程2执行过程中,在线程1中再次调用线程2,
第一次启动的数组值也会随着线程1对数组的更改而改变

怎么避免这种情况呢



------解决方案--------------------
拷贝一个副本给线程2
------解决方案--------------------
不用静态变量,在堆上分配,传返回的指针给线程2
------解决方案--------------------
使用内存对象!返回一个句柄。要访问的时候要加锁解锁!应该也可以解决这个问题!
------解决方案--------------------
堆上new分配一个空间,然后strcpy等拷贝数组,再传递给线程2
------解决方案--------------------
探讨

不用静态变量,在堆上分配,传返回的指针给线程2

------解决方案--------------------
楼主的思路不是很清晰
请首先理清楚自己的业务逻辑 
至于那个数组,可以使用new分配
另外,如果多个线程访问同一个数组 ,请使用线程同步机制 ,可以使用临界区