我对线程的概念不熟悉,并试图更好地理解它们。我知道要创建一个线程并向其发送一个2d数组,看起来像这样:
pthread_create(&threads[i], NULL, ProcessArray, threadArray);
但是我很难理解ProcessArray会发生什么。如何通过ProcessArray函数读取或理解数组是否可用? 正如我所说,我是线程新手,所以任何帮助都会受到高度赞赏。
答案 0 :(得分:0)
线程使用相同的内存,因此threadArray存在于任何线程中,您可以访问它们。您可能需要使用互斥锁来保护变量免受并发问题的影响。
如果您使用了函数fork
,则不会共享内存。
你说'2darray',要小心,不要使用your_type threadArray[n][m]
,而是**threadArray
:你的线程函数有原型void *ProcessArray(void *data)
,你必须转换data
} your_type **threadArray
,与threadArray [n] [m] =>不同你可能会遇到段错误。