美文网首页
多线程一

多线程一

作者: 灵台悠步 | 来源:发表于2024-07-05 08:52 被阅读0次

线程启动原理

image.png

线程生命周期

阻塞状态分为Blocked,time-waiting.外在表现区别不大,产生的原因不同,可以通过jstack查看,更具体的状态有助于我们排查线程相关问题。


线程生命周期.png

下面这个时更为详细的生命周期图


image.png

线程停止

  • stop方法:不建议使用,类似于kill -9,不够优雅
  • interrupt():通过Thread.currentThread().isInterrupted()来判断,类似于外部提供一个信号thread.interrupt(); //该方法是一个native方法
  • 线程复位:当线程捕获InterruptedException时,会自动复位。如果需要继续中断,需要手动在Catch部分重新中断。因为抛中断一场多是堵塞线程时发现,捕获异常同时有唤醒功能。是否继续中断的选择权在于开发者。

排查问题

  • CPU占用率很高
    top -c 查看pid
    top -H -p [pid]
    print "0x%x\n" [新pid]
    jstack [pid] | grep -A 20 [上一步16进制结果:占用CPU多的线程]
  • CPU占用率不高,但是响应很慢(死锁)
    jstack [进程] -可以看到类似Found one Java-level deadlock 并且会有线程详细信息

相关文章

  • 多线程介绍

    一、进程与线程 进程介绍 线程介绍 线程的串行 二、多线程 多线程介绍 多线程原理 多线程的优缺点 多线程优点: ...

  • 多线程编程

    多线程编程之Linux环境下的多线程(一)多线程编程之Linux环境下的多线程(二)多线程编程之Linux环境下的...

  • 多线程

    创建一个多线程 创建多线程-继承线程类 创建多线程-实现Runnable接口 创建多线程-匿名类code

  • 带你搞懂Java多线程(五)

    带你搞懂Java多线程(一)带你搞懂Java多线程(二)带你搞懂Java多线程(三)带你搞懂Java多线程(四) ...

  • iOS多线程 NSOperation

    系列文章: 多线程 多线程 pthread、NSThread 多线程 GCD 多线程 NSOperation 多线...

  • iOS多线程 pthread、NSThread

    系列文章: 多线程 多线程 pthread、NSThread 多线程 GCD 多线程 NSOperation 多线...

  • iOS多线程: GCD

    系列文章: 多线程 多线程 pthread、NSThread 多线程 GCD 多线程 NSOperation 多线...

  • iOS多线程运用

    系列文章: 多线程 多线程 pthread、NSThread 多线程 GCD 多线程 NSOperation 多线...

  • iOS多线程基础

    系列文章: 多线程 多线程 pthread、NSThread 多线程 GCD 多线程 NSOperation 多线...

  • iOS 多线程简介

    一.本文介绍点 1.为什么要学习多线程2.什么是多线程3.多线程的原理4.多线程的优缺点5.多线程的应用6.多线程...

网友评论

      本文标题:多线程一

      本文链接:https://www.haomeiwen.com/subject/mvkwcjtx.html