线程同步
前面刚介绍了有关线程的基本认识,那我们先来思考一个小问题,两个线程之间有没有可能同时对一个资源发起访问呢,答案是肯定,那么在某些情况下这样的同时访问会引发一系列冲突,先来看一个简单的例子。
创建两个线程,各自将count增加2500次,然后输出最后的结果,如下:
#include<stdio.h>
#include<pthread.h>
int count = 0;
void *thread_count(void *arg)
{
int i =0;
while(i<5000)
{
i++;
count++;
}
return NULL;
}
int main()
{
pthread_t id1,id2;
pthread_create(&id1,NULL,thread_count,NULL);
pthread_create(&id2,NULL,thread_count,NULL);
pthread_join(id1,NULL);
pthread_join(id2,NULL);
printf("count final val is : %d\n",count);
return