将2d数组传递给线程

时间:2014-01-12 12:49:28

标签: arrays multithreading pthreads multidimensional-array

我对线程的概念不熟悉,并试图更好地理解它们。我知道要创建一个线程并向其发送一个2d数组,看起来像这样:

pthread_create(&threads[i], NULL, ProcessArray, threadArray);

但是我很难理解ProcessArray会发生什么。如何通过ProcessArray函数读取或理解数组是否可用? 正如我所说,我是线程新手,所以任何帮助都会受到高度赞赏。

1 个答案:

答案 0 :(得分:0)

线程使用相同的内存,因此threadArray存在于任何线程中,您可以访问它们。您可能需要使用互斥锁来保护变量免受并发问题的影响。

如果您使用了函数fork,则不会共享内存。

你说'2darray',要小心,不要使用your_type threadArray[n][m],而是**threadArray:你的线程函数有原型void *ProcessArray(void *data),你必须转换data } your_type **threadArray,与threadArray [n] [m] =>不同你可能会遇到段错误。