用下面这个代码的案例改成并发执行
#include <pthread.h>
#include <stdio.h>
#include <unistd.h>
int counter=0;
void *p1(void *param);
void *p2(void *param);
int main(){
pthread_t tid1, tid2;
pthread_attr_t attr1,attr2;
pthread_attr_init(&attr1);
pthread_attr_init(&attr2);
pthread_create(&tid1,&attr1,p1,NULL);
pthread_join(tid1,NULL);
pthread_create(&tid2,&attr2,p2,NULL);
pthread_join(tid2,NULL);
printf("counter=%d\n",counter);
return 0;
}
void *p1(void *param){
int i;
for (i=0;i<10;i++){
int icopy=counter;
sleep(1);
icopy++;
sleep(1);
counter=icopy;
}
}
void *p2(void *param){
int i;
for (i=0;i<10;i++){
int icopy=counter;
sleep(1);
icopy++;
sleep(1);
counter=icopy;
}
}