|
下边是我自己写的一段测试用的代码,
在线程创建后不知道该如何释放掉已经创建的线程,
到后来线程就创建不出来了,
请问该如何解决,用什么函数才能将线程释放
#include<stdio.h>
#include<pthread.h>
typedef struct _LOGBUF
{
char query[1024];
}LOGBUF,*pLOGBUF;
void db_log(void)
{
printf("[%d],db_log,",pthread_self());
}
void write_db()
{
pthread_t th1;
pthread_create(&th1,NULL,(void *)&db_log,NULL);
printf("[%d],write_db\n",pthread_self());
}
inse(char *str,int *i,int *j,int size)
{
int k;
LOGBUF data[2][size];
if (*j>=0)
{
strcpy(data[*i][*j].query,str);
}
*j = *j + 1;
if (*j>=size)
{
for(k=0;k<size;k++)
{
write_db();
}
*i = !*i;
*j = 0;
}
}
main()
{
int i=0,j=0,size=1;
int *a=&i,*b=&j;
char str[1024];
while(1)
{
printf("%d,%d input str :",*a,*b);
scanf("%s",str);
inse(str,a,b,size);
}
} |
|