SMan
个人专栏

最新文章

Java定位代码导致的CPU过高问题

相信大家肯定遇到过java程序cpu一直居高不下的情况,那么我来简单介绍在linux系统下如何定位java进程cpu过高的代码位置。 首先,使用命令top,找到cpu过高的pid;接着,使用top -Hp pid 找到对应的线程 tid;我们知道jstack可以查看当前java进程的堆栈状态;由于线程在堆栈信息的使用16进制的。那么,printf "%x" tid 可以获取16进制的 tid16。

Semaphore信号量用法示例

概要 ​ Semaphore当前在多线程环境下被扩放使用,操作系统的信号量是个很重要的概念,在进程控制方面都有应用。Java 并发库的Semaphore可以很轻松完成信号量控制,Semaphore可以控制某个资源可被同时访问的个数,通过 acquire()获取一个许可,如果没有就等待,而release()释放一个许可。用来控制资源同时访问个数 ​ 以一个停车场运作为例。假设停车场只有三个车位,一开

ProgressDialog(deprecated )替代方案

ProgressDialog在API level 26被废弃,官方的解释是ProgressDialog是一个模态框(modal dialog),它会禁止与app的交互。可以在App的UI里嵌入ProgressBar作为它的替代方案。如果想实现模态框,也可以在AlertDialog里嵌入ProgressBar来实现。