线程基础

一、线程状态

二、线程的中断机制

每个线程都有一个 打扰标志。这里分两种情况:

  1. 线程在sleep,wait,join,lock.lockInterruptibly, 此时如果别的进程调用此进程的 interrupt()方法,此线程会被唤醒并被要求处理InterruptedException;(thread在做IO操作时也可能有类似行为,见java thread api)

  2. 此线程在运行中, 则不会收到提醒。但是 此线程的 “打扰标志”会被设置, 可以通过isInterrupted()查看并 作出处理。

三、Linux环境中的分析方法

  1. ps -ef | grep java 找到你的java程序的进程id, 定位 pid

  2. top -Hp $pid, shift+t 查看耗cpu时间最多的几个线程, 记录下线程ID并转换成16进制小写 比如 : 0x12ef

  3. kill -3 $pid 触发tomcat的thread dump(jstack -p 进程号),找到tomcat的catalin.out 日志, 把 上面几个线程对应的代码段拿出来.

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容