直接上示例代码,个人感觉这样学习更快。
示例代码一:不使用互斥锁,直接创建多线程,运行函数。前提是懂得线程创建函数的用法。
#include <pthread.h>
#include <stdio.h>
pthread_mutex_t mutex ;
void *print_msg(void *arg){
int i=0;
// pthread_mutex_lock(&mutex);
for(i=0;i<5;i++){
printf("output : %d\n",i);
usleep(100);
}
// pthread_mutex_unlock(&mutex);
}
int main(int argc,char** argv){
pthread_t id1;
pthread_t id2;
pthread_mutex_init(&mutex,NULL);
pthread_create(&id1,NULL,print_msg,NULL);
pthread_create(&id2,NULL,print_msg,NULL);
pthread_join(id1,NULL);
pthread_join(id2,NULL);
pthread_mutex_destroy(&mutex);
return 1;
}
运行结果如下:
output : 0
output : 0
output : 1
output : 1
output : 2
output