我正在尝试创建多个线程,这些线程可以同时运行,并且可以使用公共缓冲区。创建线程时,我对创建时传递给每个线程的内容感到困惑。
假设缓冲区在main()中声明为:
int buffer[10];
当我使用以下命令创建所有线程时:
for(i = 0; i < 10; i++){
pthread_create(&tid[i], NULL, thread_function, &buffer);
}
它们是否都将从main()共享相同的缓冲区?就像当一个线程修改了缓冲区中的某些内容时,是否会为所有线程修改它?
那是目标,我试图让所有线程都修改同一个缓冲区,我想知道这是否应该这样做。
我也理解,我已经实现了,我必须使用互斥锁来确保实现同步。
感谢您的帮助!