当前位置: 技术问答>linux和unix
linux下多线程 new core
来源: 互联网 发布时间:2016-11-23
本文导语: 1个线程不停的new 然后push到队列中,另一个线程从队列中取数据 线程同步已经实现是没问题的,再运行一段时间后,大约new 10万次后,那个new 线程 就会core,gdb调试就断在new语句上,很简单的new char *p = new ch...
1个线程不停的new 然后push到队列中,另一个线程从队列中取数据
线程同步已经实现是没问题的,再运行一段时间后,大约new 10万次后,那个new 线程 就会core,gdb调试就断在new语句上,很简单的new
char *p = new char[size];
打印日志core的时候size>0,程序运行的时候内存也没有泄漏,内存没有增长
Program terminated with signal 11, Segmentation fault.
#0 0x009ac8d8 in malloc_consolidate () from /lib/libc.so.6
(gdb) bt
#0 0x009ac8d8 in malloc_consolidate () from /lib/libc.so.6
#1 0x009aed17 in _int_malloc () from /lib/libc.so.6
#2 0x009b0e97 in malloc () from /lib/libc.so.6
#3 0x0771bab7 in operator new(unsigned int) () from /usr/lib/libstdc++.so.6
#4 0x0771bbed in operator new[](unsigned int) () from /usr/lib/libstdc++.so.6
请教各位,有没有遇到这问题的?
线程同步已经实现是没问题的,再运行一段时间后,大约new 10万次后,那个new 线程 就会core,gdb调试就断在new语句上,很简单的new
char *p = new char[size];
打印日志core的时候size>0,程序运行的时候内存也没有泄漏,内存没有增长
Program terminated with signal 11, Segmentation fault.
#0 0x009ac8d8 in malloc_consolidate () from /lib/libc.so.6
(gdb) bt
#0 0x009ac8d8 in malloc_consolidate () from /lib/libc.so.6
#1 0x009aed17 in _int_malloc () from /lib/libc.so.6
#2 0x009b0e97 in malloc () from /lib/libc.so.6
#3 0x0771bab7 in operator new(unsigned int) () from /usr/lib/libstdc++.so.6
#4 0x0771bbed in operator new[](unsigned int) () from /usr/lib/libstdc++.so.6
请教各位,有没有遇到这问题的?
|
十万次。。。
这个数量及无法接受。你要用线程池
这个数量及无法接受。你要用线程池