在线程的一个方法中声明了一个局部的char不定长数组,用来读取线程中流的字符数据。
线程很多的时候就会报内存错误,具体多少不知道,大概就二三十个线程吧。
后来声明了一个全局的不定长数组,设置了临界区,所有的线程都用这个数组来读取流的数据,这样就可以了。
但是这是个退而求其次的方法。
哪个高手帮忙解释一下前面到底是什么原因呢.谢谢

解决方案 »

  1.   

    是不是线程结束后还在访问线程里的数据
    如果放在全局变量,线程是否结束就对数据没影响了
      

  2.   

    谢谢回答。
    实在是想不通了,线程比较少的时候出错的可能比较小。
    还有把数组改成静态数组就没问题,但这里用静态数组又有点不合理。
    不知道多线程里面局部使用静态数组和动态数组到底有什么区别了。
      

  3.   

    可能还是和操作数据的代码有关系吧
    和动态数组\表态数组\全局变量没太大关系