我刚接触C中的线程。 所以从基础开始。 我只是想创建线程并在它们上使用互斥。 我已经声明了三个函数并为它们创建了3个线程,但每次执行我的程序时,并不是所有三个进程都会一直执行
请解决这个问题。
答案 0 :(得分:2)
您必须在pthread_join()
中传递线程对象,请参阅更新的第35,38,41行。
该函数的定义是int pthread_join(pthread_t thread, void **retval);
这将有所帮助。
34 thread1=pthread_create(&trd1,NULL,process1,(void *)nargs1);
35 pthread_join(trd1, NULL);
36
37 thread2=pthread_create(&trd2,NULL,process2,(void *)nargs2);
38 pthread_join(trd2, NULL);
39
40 thread3=pthread_create(&trd3,NULL,process3,(void *)nargs3);
41 pthread_join(trd3, NULL);