Wesley13 Wesley13
4年前
java 常用命令
查看堆使用情况jmapheappid查看占用内存高的对象jmaphisto:livepid|headn100查看占用内存高的对象,dump成文件,线下分析jmapdump:live,formatb,filexxx.xxxpid查看进程的线程情况psppidLopcpu,pmem,p
Stella981 Stella981
4年前
40 道 Java 并发编程高频面试题解析
1、多线程有什么用?一个可能在很多人看来很扯淡的一个问题:我会用多线程就好了,还管它有什么用?在我看来,这个回答更扯淡。所谓"知其然知其所以然","会用"只是"知其然","为什么用"才是"知其所以然",只有达到"知其然知其所以然"的程度才可以说是把一个知识点运用自如。OK,下面说说我对这个问题的看法:1)发挥多核CPU的优势随着工业的进步,现在的
Stella981 Stella981
4年前
Android AsyncTask实现
AsyncTask是android中一个非常好用的异步执行工具类。AsyncTask的应用AsyncTaskenablesproperandeasyuseoftheUIthread.这个类允许执行后台操作并在UI线程中发布结果,而却不需要管理threads和/或handlers。Asy
Wesley13 Wesley13
4年前
ASP.NET多线程下使用HttpContext.Current为null解决方案
问题一:多线程下获取文件绝对路径当我们使用HttpContext.Current.Server.MapPath(strPath)获取绝对路径时HttpContext.Current为null,解决办法如下:       ///         /// 获得当前绝对路径        ///       
Wesley13 Wesley13
4年前
mongo数据库的迁移遇到的坑
  由于公司项目原因需要把大量图片导入到mongo中,于是乎用java写了个小脚本,遍历图片文件夹,把所有的图片导入mongo中,图片数量庞大100多万张。最开始单线程跑,跑了一会发现很慢,十多分钟传了几千张,一合计这得跑到猴年马月啊。分析了一下mongo服务器在本地测试环境,网络传输不是问题。那大部分时间应该消耗磁盘IO上了。于是乎启动了8个线程跑
Stella981 Stella981
4年前
Netty之粘包问题解决
最近接到一项新的任务,其中涉及到用netty解决粘包问题,该问题解决得很顺利。下面是一些心得体会。我们知道,netty当中有boss线程和worker线程,通常是1对多的关系,可以理解为boss接到客户的请求之后,分配给其中一个worker去处理,如果客户过多,可能会出现一个worker服务多个客户的情况。这是背景。按照我的理解,粘包问题解决的关键在
Wesley13 Wesley13
4年前
Java 虚拟机垃圾收集机制详解
本文摘自深入理解Java虚拟机第三版垃圾收集发生的区域之前我们介绍过Java内存运行时区域的各个部分,其中程序计数器、虚拟机栈、本地方法栈三个区域随线程共存亡。栈中的每一个栈帧分配多少内存基本上在类结构确定下来时就已知,因此这几个区域的内存分配和回收都具有确定性,不需要考虑如何回收的问题,当方法结束或线程结
Stella981 Stella981
4年前
360移动端性能监控实践QDAS
一、背景360是一家注重用户体验的公司,公司的口号是用户至上。在这么一个注重用户体验的氛围里,app的性能问题无疑是被重点关注的,同样也是造成用户流失的罪魁祸首之一。性能问题主要包含:崩溃、网络请求错误或者超时、UI响应速度慢、主线程卡顿、CPU和内存使用高、耗电量大等等。大多问题的原因在于开发者错误地使用了线程、锁、系统函数、编程规范问题、数
Wesley13 Wesley13
4年前
Java并发 阻塞队列
阻塞队列(BlockingQueue)是一个支持两个附加操作的队列。这两个附加操作支持阻塞地插入和移除方法。支持阻塞插入的方法是指当队列满时会阻塞插入元素的线程,直到队列不满;支持阻塞移除的方法是指当队列为空时获取元素的线程无法继续获取元素直到队列不空。可以发现阻塞队列非常适合消费者和生产者场景下进行使用,生产者生产数据就是向阻塞队列中插入元素,消费者消