试过了在编译中加入-lpthread
请帮忙看一下怎么了,源码如下:
代码: 全选
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
void task1(int *counter);
void task2(int *counter);
void cheanup(int counter1,int counter2);
int g1 = 0;
int g2 = 0;
int main(int argc,char *argv[])
{
pthread_t thrd1,thrd2;
int ret;
/*create the first thread*/
ret = pthread_create(&thrd1,NULL,(void *)task1,(void *)&g1);
if(ret){
perror("pthread_creat: task1");
exit(EXIT_FAILURE);
}
/*create the second thread*/
ret = pthread_create(&thrd2,NULL,(void *)task2,(void *)&g2);
if(ret){
perror("pthread_creat: task2");
exit(EXIT_FAILURE);
}
pthread_join(thrd2,NULL);
pthread_join(thrd1,NULL);
cleanup(g1,g2);
exit(EXIT_SUCCESS);
}
void task1(int *counter)
{
while(*counter < 5){
printf("task1 cout: %d\n",*counter);
(*counter)++;
sleep(1);
}
}
void task2(int *counter)
{
while(*counter < 5){
printf("task2 cout: %d\n",*counter);
(*counter)++;
sleep(1);
}
}
void cleanup(int counter1,int counter2)
{
printf("total iterations: %d\n",counter1 + counter2);
}