当前位置: 技术问答>linux和unix
linux创建线程失败问题!!!
来源: 互联网 发布时间:2016-05-19
本文导语: 我有一个提供网络通信服务的server程序,程序中共需创建6个线程,分别负责不同的功能。 刚开始时测试是可以正常运行的,后来在压力测试的过程中连接了上千个客户端进行了24小时 的测试。 今早我把这个服务程序停止后...
我有一个提供网络通信服务的server程序,程序中共需创建6个线程,分别负责不同的功能。
刚开始时测试是可以正常运行的,后来在压力测试的过程中连接了上千个客户端进行了24小时
的测试。
今早我把这个服务程序停止后再重新启动发现6个线程却只能创建2个了,其他的在调用
pthread_create时返回值为12,打印错误信息如下:
errno = 12, msg = Cannot allocate memory
我怀疑这个现象是和我的程序有关系的,但是却不知道什么原因会导致这种结果,请各位大虾
给点解决思路,谢谢啦
|
你的程序可能存在严重的内存泄漏,可以用valgrind等工具先检查一下。
|
硬件坏的可能性不大吧,你有没有对每一个退出的线程进行join动作啊?
|
机器重启都是一样的错误?那就跟内存泄露没有关系,只是内存泄露的话,重启程序就可以解决了,不用说重启机器了。
|
线程栈的值设置的太小吧?
|
在makefile里有没有设置-elf2flt="-s131072",
-s后的值是不是足够大?
-s后的值是不是足够大?