实现一个创建两个线程的程序。线程将打印其ID(pthread_self)10次然后停止。确保打印的ID始终交替(即A,B,A,B,...)
问题是:我应该在何处放置锁并解锁互斥锁?
#include <stdio.h>
#include <pthread.h>
#define N 2
pthread_mutex_t mtx;
void* func (void* arg) {
int i=0;
int f=1;
for(i=0; i<10; i++) {
printf("%d%s%d\n",f ,": ", (int)pthread_self());
f++;
}
return NULL;
}
int main() {
int i;
pthread_t thr[N];
pthread_mutex_init(&mtx, NULL);
for(i=0; i<N; i++) {
pthread_create(&thr[i], NULL, func, NULL);
}
for(i=0; i<N; i++) {
pthread_join(thr[i], NULL);
}
pthread_mutex_destroy(&mtx);
return 0;
}