本文主要是介绍linux 线程的缺点和线程池的必要性,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在linux操作系统中,同一个程序创建线程的次数是有限制的,不断的创建销毁线程,很浪费资源,同事最后会导致老是创建失败,所以有必要使用线程池。
可以写个简单的代码测试一下:
#include <stdio.h>
#include <pthread.h>
#include <stdlib.h>
#include <unistd.h>static int value = 0;
void* doSomeThings(void* arg)
{printf("value=%d\n", value++);return (void*)NULL;
}int main()
{while (1) { pthread_t pthreadID;if ( 0 != pthread_create(&pthreadID, NULL, doSomeThings, NULL)){ printf("create pthread failed. %m\n"); } usleep (100*1000);} return 0;
}
可以发现,运行一段时间之后,线程创建老是失败,并提示Cannot allocate memory的错误。
这篇关于linux 线程的缺点和线程池的必要性的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!