通过pthread_create传递参数

时间:2018-11-29 00:37:02

标签: c multithreading mutex

我正在尝试创建多个线程,这些线程可以同时运行,并且可以使用公共缓冲区。创建线程时,我对创建时传递给每个线程的内容感到困惑。

假设缓冲区在main()中声明为:

int buffer[10];

当我使用以下命令创建所有线程时:

for(i = 0; i < 10; i++){
     pthread_create(&tid[i], NULL, thread_function, &buffer);
}

它们是否都将从main()共享相同的缓冲区?就像当一个线程修改了缓冲区中的某些内容时,是否会为所有线程修改它?

那是目标,我试图让所有线程都修改同一个缓冲区,我想知道这是否应该这样做。

我也理解,我已经实现了,我必须使用互斥锁来确保实现同步。

感谢您的帮助!

0 个答案:

没有答案