标签:nstat turn _id sleep reads pre null highlight cpp
#include <stdio.h>
#include <unistd.h>
#include <pthread.h>
void increase();
int sum = 0;
pthread_mutex_t mutex;
int main() {
// init mutex
pthread_mutex_init(&mutex, NULL);
pthread_t threads[4];
for (int i = 0; i < sizeof(threads) / sizeof(threads[0]); i++) {
pthread_create(&threads[i], NULL, increase, NULL);
}
for (int i = 0; i < sizeof(threads) / sizeof(threads[0]); i++) {
void *joinstatus;
int res = pthread_join(threads[i], &joinstatus);
printf("res:%d\n", res);
if (res) {
// fprintf(stderr, "pthread_join fail");
perror("pthread_join fail");
}
}
// sleep(2);
pthread_mutex_destroy(&mutex);
printf("sum:%d\n", sum);
return 0;
}
void increase() {
for (int i = 0; i < 10000; i++) {
pthread_mutex_lock(&mutex);
sum++;
pthread_mutex_unlock(&mutex);
}
printf("t_id:%u\n", pthread_self());
}
pthread_joint开始传的&thread,指针类型,编译和运行都没有报错,函数返回3。改成pthread_t类型的可以了
标签:nstat turn _id sleep reads pre null highlight cpp
原文地址:https://www.cnblogs.com/luckygxf/p/12285587.html