必知的技术知识:heapcorruptiondetectedbydlmalloc

简介: 必知的技术知识:heapcorruptiondetectedbydlmalloc

原生看书,下载完整版,解析所有html,抽取出所有编辑器,拿着内容去服务器获取图片路径,然后再通过路径去去下载文件,


现在走着走着,程序就直接崩掉了,报错日志如下:


11-17 23:22:27.523 19727-19727/com.handsome.hxm I/System.out: 这是个编辑器


11-17 23:22:27.523 19727-19727/com.handsome.hxm I/System.out: 这是个编辑器


11-17 23:22:27.523 19727-22572/com.handsome.hxm I/System.out: 230 User logged in, proceed.


11-17 23:22:27.523 19727-22572/com.handsome.hxm I/System.out: TYPE I


11-17 23:22:27.523 19727-22574/com.handsome.hxm I/System.out: 220 Serv-U FTP Server v15.1 ready...


11-17 23:22:27.523 19727-22556/com.handsome.hxm I/System.out: 150 Opening BINARY mode data connection for 5eaa48cf00321a6d022d4626652764bd.png (6833 Bytes).


11-17 23:22:27.523 19727-22574/com.handsome.hxm I/System.out: USER admin


11-17 23:22:27.523 19727-22573/com.handsome.hxm I/System.out: 230 User logged in, proceed.


11-17 23:22:27.523 19727-22566/com.handsome.hxm I/System.out: 227 Entering Passive Mode (192,168,0,31,5,111)


11-17 23:22:27.523 19727-22567/com.handsome.hxm I/System.out: 227 Entering Passive Mode (192,168,0,31,5,112)


11-17 23:22:27.523 19727-19727/com.handsome.hxm I/System.out: 这是个编辑器


【 11-17 23:22:27.523 19727:22576 I/ 】


要请求的data:{"height":39,"width":249,"htmlContent":"


2.库存现金收支业务的账务处理"}


11-17 23:22:27.523 19727-22573/com.handsome.hxm I/System.out: TYPE I


11-17 23:22:27.533 19727-22576/com.handsome.hxm W/System.err: 【DEBUG】 GbaRequest - GbaRequest: Constructor Called 222 userAgent null


11-17 23:22:27.533 19727-22556/com.handsome.hxm I/System.out: 下载进度:100


11-17 23:22:27.533 19727-22572/com.handsome.hxm I/System.out: 200 Type set to I.


11-17 23:22:27.533 19727-22572/com.handsome.hxm I/System.out: SYST


11-17 23:22:27.533 19727-22576/com.handsome.hxm W/System.err: 【DEBUG】 NafRequest - NafRequest: NafRequest constructor===useragent null


11-17 23:22:27.533 19727-19727/com.handsome.hxm A/libc: heap corruption detected by dlmalloc


11-17 23:22:27.533 19727-19727/com.handsome.hxm A/libc: Fatal signal 6 (SIGABRT) at 0x00004d0f (code=-6), thread 19727 (om.handsome.hxm)


报错就在最后两句,查了一下,其实就是thread开的过多,把heap整崩了而已


解决方案:


重新修改逻辑,将所有线程(Runnable)装到一个list中。开启一个线程池,里面最多装10个线程。同步下载,代码如图:


List onmList = DBManagerHelper.getInstance().getOnclassNode(common.tempUserId, common.tempCourseId);


if(onmList != null){


ExecutorService fixedThreadPool = Executors.newFixedThreadPool(10);


common.runnableList.clear();


Log.i("","parse所有Node开始时间:" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));


for (OnclassNodeModel onm : onmList) {


try {


String path = //代码效果参考:http://www.lyjsj.net.cn/wx/art_24129.html

Environment.getExternalStorageDirectory().getAbsolutePath() + "/qinhan_inc/AndroidServer/" + onm.getNodeId() + ".html";

HtmlParserFullVersion parser = new HtmlParserFullVersion();


//解析html,将编辑器和图表代码发送到服务器,获取生成的图片ftp地址


parser.parseHtml(path);


} catch (Exception e) {


e.printStackTrace();


}


}


Log.i("","parse所有Node结束时间:" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));


Log.i("","common.runnableList size is:" + common.runnableList.size());


for (Runnable runnable : common.runnableList) {


fixedThreadPool.execute(runnable);


}


}


解决,就是得排队。

相关文章
|
机器学习/深度学习 数据采集 存储
4个维度讲透ChatGPT技术原理,揭开ChatGPT神秘技术黑盒
4个维度讲透ChatGPT技术原理,揭开ChatGPT神秘技术黑盒
|
存储 缓存 编解码
【FFmpeg 视频播放】深入理解多媒体播放:同步策略、缓冲技术与性能优化(一)
【FFmpeg 视频播放】深入理解多媒体播放:同步策略、缓冲技术与性能优化
672 0
|
Shell Android开发
RK android13编译环境搭建与常用编译命令
RK android13编译环境搭建与常用编译命令
637 0
|
存储 NoSQL Ubuntu
如何安装和使用 Redis
如何安装和使用 Redis
196 0
|
数据库 Android开发 数据库管理
java.lang.NullPointerException: Attempt to invoke virtual method ‘int android.database.sqlite异常
java.lang.NullPointerException: Attempt to invoke virtual method ‘int android.database.sqlite异常
894 0
pydub 歌曲,提取副歌,音乐歌曲切片,渐进渐出,音量,歌曲歌谱
pydub 歌曲,提取副歌,音乐歌曲切片,渐进渐出,音量,歌曲歌谱
|
Android开发 开发者
Android经典面试题之SurfaceView和TextureView有什么区别?
分享了`SurfaceView`和`TextureView`在Android中的角色。`SurfaceView`适于视频/游戏,独立窗口低延迟,但变换受限;`TextureView`支持复杂变换,视图层级中渲染,适合动画/视频特效,但性能略低。两者在性能、变换、使用和层级上有差异,开发者需按需选择。
659 1
|
Shell Linux 开发工具
Git版本控制工具详解(一)
Git版本控制工具详解
320 0
Git版本控制工具详解(一)
|
Linux
Linux设备驱动之多个同类设备共用一套驱动
Linux设备驱动之多个同类设备共用一套驱动
408 0
|
存储 Linux C语言
stm32cubeMX学习、USB DFU(Download Firmware Update)固件更新
stm32cubeMX学习、USB DFU(Download Firmware Update)固件更新
1648 1