美文网首页程序员
java线程状态和线程池

java线程状态和线程池

作者: 万万_936b | 来源:发表于2019-04-19 14:23 被阅读6次

本节总结线程相关知识:线程状态和线程池。
1.线程的五个状态


线程.png

关于如何终止线程,以下仅供参考:

线程:
public class ThreadTest extends Thread {
    @Override
    public void run() {
        try {
            Log.d("ThreadTest", Thread.currentThread().getName() + "线程开始");
            for (int i = 0; i < 10000; i++) {
                if (this.isInterrupted()) {
                    Log.d("ThreadTest", "i循环停止:" + i);
                    throw new InterruptedException();
                }
                Log.d("ThreadTest", "i:" + i);
            }

            for (int j = 0; j < 10000; j++) {
                if (this.isInterrupted()) {
                    Log.d("ThreadTest", "j循环停止:" + j);
                    throw new InterruptedException();
                }
                Log.d("ThreadTest", "j:" + j);
            }
        } catch (InterruptedException e) {
            Log.d("ThreadTest", Thread.currentThread().getName() + "线程停止");
            Log.d("ThreadTest", "InterruptedException:" + e.getMessage());
        }
    }
}
测试:
try {
        ThreadTest threadTest = new ThreadTest();
        threadTest.start();
        Log.d("ThreadTest", "getName:" + threadTest.getName());
        Thread.sleep(2000);
        Log.d("ThreadTest", "isInterrupted1:" + threadTest.isInterrupted());
        threadTest.interrupt();
        Log.d("ThreadTest", "isInterrupted2:" + threadTest.isInterrupted());
    } catch (InterruptedException e) {
        Log.d("ThreadTest", "InterruptedException:" + e.getMessage());
    }
结果:
ThreadTest: j:2849
ThreadTest: j:2850
ThreadTest: j:2851
ThreadTest: isInterrupted1:false
ThreadTest: j:2852
ThreadTest: isInterrupted2:true
ThreadTest: j循环停止:2853
ThreadTest: Thread-9577线程停止
Choreographer: Skipped 121 frames!  The application may be doing too much work on its main thread.
ThreadTest: InterruptedException:null

2.线程池


线程池.png

相关文章

  • ExecutorService

    ExecutorService扩展和实现Executor。 java 线程池的5种状态 RUNNING 线程池...

  • 多线程juc线程池

    java_basic juc线程池 创建线程池 handler是线程池拒绝策略 排队策略 线程池状态 RUNNIN...

  • Android线程学习索引

    目录 线程状态 线程池 线程安全 Java Memory Model Volatile Sychornized R...

  • 多线程 | 4.线程池

    Java并发编程:线程池的使用 线程池基础 请求队列 线程池维护一定数量的线程,当线程池在运行状态的线程数量达上...

  • 线程池源码解读

    深入分析java线程池的实现原理 ps: 用一个AtomicInteger记录 线程池状态和其中的线程个数, 其中...

  • java线程状态和线程池

    本节总结线程相关知识:线程状态和线程池。1.线程的五个状态 关于如何终止线程,以下仅供参考: 2.线程池

  • java基础-多线程

    java线程池的实现 ThreadPoolExecutor java线程池几个参数 corePoolSize当线程...

  • 3个月面试20多次Java后端,总结的面试必会知识点

    Java多线程并发 先来看看并发知识库体系图: Java线程实现/创建方式? 4种线程池 ? 线程生命周期(状态)...

  • ThreadPoolExecutor 中的 ctl 变量

    最近在看 Java 线程池的实现,发现里面有一个 int 类型的成员变量,同时表示线程池运行状态和线程数量。理解了...

  • JAVA多线程知识体系

    JAVA并发知识库JAVA线程实现/创建方式4种线程池线程生命周期(状态)终止线程4种方式sleep与wait 区...

网友评论

    本文标题:java线程状态和线程池

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