请教:多线程的问题?(Linux OS)
问题:子线程(void * thread)运行着端口监听程序,且工作正常。但为何主程序里的while(1){.....}只执行一次而不是永久循环下去?(dlog.txt文件中只有一行数据,正常情况下应该有多行才对。)我的本意是想一个线程执行TCP端口监听并执行接收的指令,而主线程同时在不停地接收数据。两个线程中都有一个while(1){......}。
源码如下:
int main()
{
pthread_t tid;
printf("this is main thread.\n");
pthread_create(&tid, NULL, thread, NULL);
//pthread_join(tid, NULL);
printf("the Server listening......\n");
while(1)
{
//printf("kk\n");
system("date >> dlog.txt");
sleep(1000);
} //经过测试,只有主线程不结束,子线程才有效。
return 0;
}
//------------------------------------------------
void *thread(void *vargp)
{
printf("this is second thread.\n");
tcp_svr_Listen_fun();
return NULL;
}