我正在编写一个创建三个线程的代码。现在使用 pthread_mutex 我如何同步它们?可以说我有这种类型的代码:-
#include<stdio.h>
#include<pthread.h>
void *function1(void *ptr)
{
do something on a buffer;
}
void *function2(void *ptr)
{
do samething else but ob the same buffer;
}
void *function(void *ptr)
{
do samething else again on buffer;
}
main()
{
pthread_t t1,t2,t3);
int a,b,c;
a= creates a thread using pthread_create(&t1,NULL,func1,NULL);
b= creates a thread using pthread_create(&t2,NULL,func2,NULL);
c= creates a thread using pthread_create(&t3,NULL,func1,NULL);
and after that pthread_join wait till all the threads gets finished;
}
但是正如你所看到的,当你做这样的事情时,所有线程同时启动,结果并不像预期的那样。现在我们如何使用 pthread_mutex 来锁定和解锁同一个缓冲区,以便一次只有一个线程可以处理它?我也希望 t1 先到,然后再到 t2,再到 t3。基本上我必须设置优先级怎么办?